
Ahora me han pedido que a partir de los datos que tengo en las tablas genere una serie de informes: lo que se vendió de cada producto, cuantos tickets de hicieron, que hora del día se vende mas, etc ... Había pensado hacerlo con informes de Crystal enlazados directamente contra la base de datos, pero la cosa no me esta resultando sencilla ya que es necesario poder modificar los parámetros de los informes para, por ejemplo, averiguar a que hora del día se vende mas jamón

Como la cosa con Crystal no iva muy bien, decidí enfocar el problema de otra manera y hacer un pequeño programa que me muestra en una rejilla una serie de consultas (guardadas en archivos de texto) y que me deja cambiarle los filtros de selección.
Por ejemplo, una consulta típica seria algo como esto:
SELECT * FROM lintickets WHERE %FILTRO%
El programa se encarga de reemplazar %FILTRO% por un filtro que el usuario puede personalizar a su gusto.
Pero ahora quiero darle un vuelta de tuerca y necesito poder agrupar los valores de la rejilla. Por ejemplo, la consulta anterior me devuelve todas las ventas, pero si agrupo por fecha me podría dar las ventas por día, y si agrupo por código me podría dar la cantidad total vendida de cada articulo. Y aquí es donde tengo el problema ¿como haga esta agrupación?
Una solución sencilla es añadirle "group by" a la consulta, y así agrupar por los campos que quiera. Pero eso puede no ser tan sencillo si la consulta es compleja (con varias tablas por ejemplo), ya que la agrupación se tendría que hacer con un par de click por parte del usuario y el programa no conoce previamente la consulta, la tiene que analizar en tiempo de ejecución.
Pensé en otras soluciones, entre ellas cargar el resultado de la consulta en un ClientDataShet y luego, mediante consultas mas sencillas, hacer agrupaciones con los datos contenidos en el ClientDataShet. Pero pensé que tiene que haber alguna solución mas sencilla, no quiero matarme a programar y luego enterarme que existía el método "agrupar" en el dbgrid

En resumen: ¿alguien conoce algún método sencillo de agrupar los valores de una rejilla?
Gracias