Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

De tabla "vertical" a "horizontal"

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: De tabla "vertical" a "horizontal" Responder citando

Tengo este query:
Código:
SELECT Grupo1, Grupo2, Grupo3, Dato1
FROM 'Estadi.db'
WHERE TipEst = 100
ORDER BY Grupo1, Grupo2, Grupo3

que genera una salida similar a esta:
Código:
Grupo1  Grupo2  Grupo3  Dato1
1       0       0       6
1       0       1       13
1       1       0       1
1       1       1       15
1       3       0       5
1       3       1       6
2       0       0       2
2       0       1       18
2       1       0       1
2       1       1       9
2       3       0       17
2       3       1       12

Dado que necesito montar un informe con QuickReport me haría falta que la salida de cada valor de Grupo1 estuviera en la misma fila.
Código:
Grupo1  Dato1   Dato1    Dato1   Dato1    Dato1   Dato1
1       6       13       1       15       5       6

Pero no se me ocurre como organizar el query. He probado con UNION y LEFT JOIN.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Solucinado. Tras muchas vueltas y revueltas di con la solución. Es con LEFT JOIN. Aquí la dejo:
Código:
SELECT A.Grupo1, A.Dato1, B.Dato1, C.Dato1, D.Dato1
FROM 'Estadi.db' A
LEFT JOIN 'Estadi.db' B ON A.Grupo1 = B.Grupo1
LEFT JOIN 'Estadi.db' C ON A.Grupo1 = C.Grupo1
LEFT JOIN 'Estadi.db' D ON A.Grupo1 = D.Grupo1
WHERE A.TipEst = 100 AND A.Grupo2 = 0 AND A.Grupo3 = 0
AND A.TipEst = B.TipEst AND B.Grupo2 = 0 AND B.Grupo3 = 1
AND A.TipEst = C.TipEst AND C.Grupo2 = 1 AND C.Grupo3 = 0
AND A.TipEst = D.TipEst AND D.Grupo2 = 1 AND D.Grupo3 = 1
ORDER BY A.Grupo1

_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.