PDA

Ver la Versión Completa : Como hacer este select...


RAMONES
16/03/09, 12:40:20
Hola a todos amigos saperos, mi consulta es la la siguiente...tengo que hacer un select a la tabla BSIK y BSAK y traer el campo DMBTR (importe moneda local), pero tengo que traer los importes de los ultimos 12 meses (o sea un año), como deberia hacer ese select....les agradezco su ayuda de antemano!!!! Porfa denme una manito.

gugutin
16/03/09, 13:25:54
Hola Ramones,

No se exactamente que deseas obtener, pero las fechas de control de estas tablas son la fecha de contabilizacion BUDAT o bien la fecha de documento BLDAT, todo depende de lo que quieras obtener, lo normal es budat, tambien debes tener encuenta que este campo de importe no lleva el signo y debes tratar el SHKZG debe/haber, H si es HABER resta sino S si es DEBE suma.

Espero haberte ayudado.
Saludos

RAMONES
16/03/09, 14:02:37
Ante todo gracias por la respuesta, lo que quiero obtener son los 12 importes anteriores a la fecha actual, para poder despues sumarlos (y si superan determinado monto, mandar un mensaje de error), como podria realizar el select?? muchas gracias!!

ppchico
16/03/09, 14:22:09
Ante todo gracias por la respuesta, lo que quiero obtener son los 12 importes anteriores a la fecha actual, para poder despues sumarlos (y si superan determinado monto, mandar un mensaje de error), como podria realizar el select?? muchas gracias!!

Saludos Ramones,


Si no me equivoco, lo que quieres es poder encontrar los 12 anteriores importes justo anterior a la fecha, por lo que deberías de hacer el select de la siguiente manera:

select *
from tablas
into table tabla_interna
up to 12 rows
where condiciones
order by fecha(si tienes).

No recuerdo ahora mismo si el order by es antes o después del WHERE, pero con eso solo traerías las 12 anteriores justas a la fecha actual.

Suerte con tu desarrollo.

Henger Abreu
16/03/09, 14:22:52
buenos días.

Si es un reporte y no tiene como parametros de entrada la fecha (como dice gugutin normalmente es budat) yo agarraria el campo sy-datum y crearia un rango de fecha que es la que utilizaria en el select.

RAMONES
16/03/09, 14:34:13
Muchas gracias a todos por sus prontas respuestas, se los agradezco muchisimo!!! En serio mil gracias!!

gugutin
16/03/09, 14:38:27
Hola ramones

el ejemplo creo que deberia ser algo asi

TABLES: bsik, bsak.

DATA: ti_bsiak TYPE STANDARD TABLE OF bsik WITH HEADER LINE.

SELECT * FROM bsik INTO TABLE ti_bsiak
WHERE bukrs = p_bukrs
AND lifnr = p_lifnr
AND budat IN so_budat.

SELECT * FROM bsak APPENDING TABLE ti_bsiak
WHERE bukrs = p_bukrs
AND lifnr = p_lifnr
AND budat IN so_budat.

perdona la tardanza pero no encontraba un ejemplo y lo tenia que preparar.
Saludos.

crounly
16/03/09, 14:46:36
Puedes crear un rango y pasarselo en el select

SELECT .....
INTO..
FROM ....
WHERE budat in RANGO_FECHA


O asi:

SELECT .....
INTO..
FROM ....
WHERE budat >= (Fecha de inicio)
AND budat <= (Fecha de fin).

Si quieres que te sume todas las positivas...

SELECT SUM( ..... )
INTO..
FROM ....
WHERE budat >= (Fecha de inicio)
AND budat <= (Fecha de fin)
AND SHKZG EQ 'S'.

Y las negativas

SELECT SUM( ..... )
INTO..
FROM ....
WHERE budat >= (Fecha de inicio)
AND budat <= (Fecha de fin)
AND SHKZG EQ 'H'.

Suerte

RAMONES
16/03/09, 14:55:52
Nuevamente no se que decirles, les agradezco muchisimo a todos su aporte, en serio no se como agradecerles!!!

Saludos a todos y muchas gracias!!!!

gugutin
16/03/09, 15:48:02
Nuevamente no se que decirles, les agradezco muchisimo a todos su aporte, en serio no se como agradecerles!!!

Saludos a todos y muchas gracias!!!!

Es muy facil, cuando se tiene un ratito, se da uno un paseo por el foro y siempre se podras hacer tus aportaciones a los demas

Hasta pronto.

RAMONES
16/03/09, 18:05:25
Soy nuevo en el foro, pero eso hare siempre que pueda resolver las dudas que plantean, nuevamente gracias a todos...