MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   como filtro por MES y AÑO un select?? (foro/showthread.php?t=44921)

Karla V. 24/08/11 20:36:49

como filtro por MES y AÑO un select??
 
Urgente, necesito obtener los datos de un mes y año específico seleccionado por el usuario
la información la tomo con un select y allí mismo le estoy colocando la condición pero no me lo toma
select S501~VKORG S501~WERKS S501~VTWEG S501~SPART
sum( S501~UMMENGE ) as UMMENGE
sum( S501~GUMENGE ) as GUMENGE
INTO CORRESPONDING
FIELDS OF TABLE ti_usuarios
from S501 WHERE
VKORG IN CVKORG
AND SPART IN CSPART AND WERKS IN CWERKS
AND VTWEG IN CCANAL
AND SPART BETWEEN 11 AND 90
and S501~SPTAG(4) = nanno
and S501~SPTAG+4(2) = nmes
group by S501~VKORG S501~WERKS S501~VTWEG S501~SPART.
me da error y dice que S501~SPTAG(4) y S501~SPTAG+4(2) no existen...que hago?????:eek:

mysmb2 24/08/11 21:04:07

porque no haces un concatenate con nanno y nmes y a esa variable la comparas con S501~SPTAG

saludos

pancho6102 24/08/11 22:39:47

pues yo lo que haria como comenta mysmb2 concatena

puedes usar variables:
dia= por default valor 01
mes= mes que necesitas
año = el año
los concatenas para formar 01.mes.año (segun el formato de la config del sistema).

luego la pasas por la funcion RP_LAST_DAY_OF_MONTHS esta funcion te dice el ultimo dia de esa fecha en el parametro LAST_DAY_OF_MONTH. que lo metas en una variable. y ya con eso formas un rango de fechas con un el dia primero del mes y el ultimo puedes usar RANGES O BETWEEN o algo asi.

es una idea puede haber una mas corta, que alguien mas proponga

Saludos!!

JorgEstuardo 25/08/11 15:18:45

S501~SPTAG(4). Esto no es válido en el select, no deja hacer las agrupaciones de esta forma la forma en que lo puedes agrupar es por el nombre del campo completo sin la instrucción de Substring. Prueba de esta forma, si no te funcionara crea un campo mes y año dentro de tu tabla interna y luego suma con un collect. Aqui se publico una solución similar. Te la dejo

daniel1050 25/08/11 17:19:27

La solucion mas facil seria: no filtrar mes y año en ese select.

Luego dentro de un loop a la tabla:

Podrias meter el mes y año del campo actual en 2 variables e irte fijando si cumple con lo que queres filtrar.

Si cumple, la pasas a otra tabla interna "definitiva", si no cumple no la moves a ningun lado.

kibo 25/08/11 18:01:14

Para que tantas vueltas si este muchacho mysmb2 en 3 palabras le resolvio el problema y de la forma mas performante...?


Husos Horarios son GMT. La hora en este momento es 03:04:22.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web