He estado dando vueltas por todos lados (es una forma de hablar
) y he encontrado varias respuestas que apuntan en la dirección que quiero ir; casi todas ellas hablan de las CTE. Encontré una sugerencia de
fjcg02 que la verdad sea dicha me ha gustado (con un procedimiento) pero tengo que estudiarla a fondo. Antes de implementar nada nuevo he estado probando otra sugerencias que vienen en
ese hilo, pero la que más parece aproximarse a mi problema o no estoy desarrollándola bien o no acabo de entenderla.
La tabla tiene, entre otros muchos, estas dos filas:
Estoy usando este código:
Código SQL
[-]WITH Pivote AS (SELECT DISTINCT Estadistica, Grupo1, Grupo2, Grupo3, Dato1 FROM Estadistica)
SELECT A.Grupo1, A.Grupo2, B.Grupo3, B.Dato1, C.Grupo3, C.Dato1
FROM Estadistica A
LEFT JOIN Pivote B ON A.Estadistica = B.Estadistica AND A.Grupo1 = B.Grupo1 AND A.Grupo2 = B.Grupo2 AND B.Grupo3 = 3
LEFT JOIN Pivote C ON A.Estadistica = C.Estadistica AND A.Grupo1 = C.Grupo1 AND A.Grupo2 = C.Grupo2 AND C.Grupo3 = 4
WHERE SUBSTRING(A.Estadistica FROM 1 FOR 1) = :Estadistica
ORDER BY 1, 2
Todos los campos de la tabla son del tipo INTEGER. Al ejecutar esa consulta, entre otras muchas filas, me devuelve esto:
Me devuelve dos filas iguales, y lo hace siempre que para un valor único de la combinación
Grupo1-Grupo2 hay más de un posible valor en
Grupo3 y es evidente que lo que yo busco es que me devuelva una única fila. ¿alguna sugerencia?