La salida que monto en pantalla es esta:
Este TListView lo monto con un query con el que saco el número de columnas necesarias (al margen, en este caso, de las dos primeras):
Código SQL
[-]SELECT DISTINCT A.Grupo3, B.Literal
FROM Estadistica A, Instalacion B
WHERE B.Etiqueta = 'Situacion' AND A.Grupo3 = B.Valor
ORDER BY 1, 2
Luego busco todas las combinaciones distintas
Grupo2, Grupo1:
Código SQL
[-]SELECT DISTINCT A.Grupo2, B.Nombre, A.Grupo1, C.Nombre
FROM Estadistica A, Profesion B, Junta C
WHERE A.Grupo2 = B.Codigo AND A.Grupo1 = C.Codigo
ORDER BY 2, 4
Con este query creo cada una de las líneas del TListView e incorporo la información de las dos primeras columnas. Luegop, para cada fila del mismo ejecuto este otro:
Código SQL
[-]SELECT Grupo3, Dato1
FROM Estadistica
WHERE Grupo1 = :Grupo1 AND Grupo2 = :Grupo2
ORDER BY 1, 2
Y con el resultado del mismo voy poniendo la información en las columnas correspondientes. Lo que busco es lógicamente simplificar esta maraña de código.