PDA

Ver la Versión Completa : Agrupar datos en Query


natxojarto
23/07/10, 07:45:30
Hola,

He estado mirando por internet a ver si se podía hacer lo sisguinete, pero no he encontrado nada a ver si me podeis ayudar:

Me gusatria agrupar las lineas que salen en una query es decir, si el resultado fuese:

Sociedad Centro Beneficio Cuenta Total
E003 E003010001 Z622120000 56
E003 E003010001 Z622120000 23
E003 E003010001 Z623900000 48
E003 E003010001 Z624100000 69

¿Seria posible que saliera solo una linea para cada Sociedad/Cnetro de beneficio/Cuenta?

Sociedad Centro Beneficio Cuenta Total
E003 E003010001 Z622120000 79
E003 E003010001 Z623900000 48
E003 E003010001 Z624100000 69

Muchas gracias,

oarranzli
24/07/10, 13:07:05
Hola natxojarto:

Tendrás que crear un layout para tu query. Ordenar por los criterios de agrupación y hacer sumatorio por el campo total. Entonces podrás agupar las líneas. Lo puedes hacer desde el icono 'Modificar disposición' a través de la vista 'Clasificación'.

Saludos,



Hola,

He estado mirando por internet a ver si se podía hacer lo sisguinete, pero no he encontrado nada a ver si me podeis ayudar:

Me gusatria agrupar las lineas que salen en una query es decir, si el resultado fuese:

Sociedad Centro Beneficio Cuenta Total
E003 E003010001 Z622120000 56
E003 E003010001 Z622120000 23
E003 E003010001 Z623900000 48
E003 E003010001 Z624100000 69

¿Seria posible que saliera solo una linea para cada Sociedad/Cnetro de beneficio/Cuenta?

Sociedad Centro Beneficio Cuenta Total
E003 E003010001 Z622120000 79
E003 E003010001 Z623900000 48
E003 E003010001 Z624100000 69

Muchas gracias,

Cristiana
27/07/10, 14:00:20
Si los registros los tienes en una tabla interna, puedes loopear la tabla y dentro del loop usar usar un colect y pasarlos a otra tabla interna. el collect te va a agrupar los registros tomando como llave los campos no numericos. te paso la definicion y un ejemplo espero y te sirva.

COLLECT
Definición
Para rellenar líneas en una tabla interna con la comprobación por parte del sistema de que la clave estándar de la tabla
será única.
Sintaxis:
COLLECT [ <área-trabajo> INTO ]<tabla> [ SORTED BY <campo> ].
Para especificar un área de trabajo distinta al área de trabajo de la tabla interna se utiliza la cláusula
<área-trabajo> INTO.

El sistema comprueba si existe alguna línea en la tabla interna con la misma clave estándar. Recordemos que la
clave estándar esta compuesta de todos los campos no numéricos. De no existir una línea con la misma clave, el
fecto de esta sentencia es el mismo que el de la sentencia APPEND, añade una entrada en la tabla. Si existe ya
una línea con la misma clave estándar, no se inserta ninguna línea a la tabla interna; si hay campos numéricos,
se sumarán.

La cláusula SORTED BY <campo> no debe utilizarse. En futuras versiones esta cláusula desaparecerá. En su
lugar se puede utilizar la sentencia APPEND.

Ejemplo:
DATA: BEGIN OF COMPANIES OCCURS 10,
NAME(20),
SALES TYPE I,
END OF COMPANIES.
COMPANIES-NAME = 'Duck'. COMPANIES-SALES = 10.
COLLECT COMPANIES.
COMPANIES-NAME = 'Tiger'. COMPANIES-SALES = 20.
COLLECT COMPANIES.
COMPANIES-NAME = 'Duck'. COMPANIES-SALES = 30.
COLLECT COMPANIES.
El resultado en la tabla companies sería el siguiente:
NAME SALES
Duck 40
Tiger 20