Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-01-2020
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Query con pivote

Tengo una BB.DD. en Firebird 2.5 y necesito montar un query con un pivote pero me está dando resultados qe no acabo de entender. A ver si soy capaz de explicarlo.

El query usa estas tablas:
1. Elecciones
Codigo Proceso Fecha
1 6 1979
2 4 1982
3 5 1983... etc.

2. Proceso
Codigo Nombre
3 EUROPEAS
4 GENERALES
5 AUTONOMICAS
6 MUNICIPALES

3. Resultados
Proceso Mesa Partido Votos
29 139 3 131
29 139 14 43
29 139 2 144... etc.

4. Mesas
Codigo Municpio Distrito Seccion Mesa
1 175 1 1 U
2 175 1 2 U... etc.

5. Partidos
Codigo Nombre Sigla
2 PARTIDO POPULAR PP
3 PARTIDO SOCIALISTA PSOE... etc.

Y el query (se crea de forma dinámica en función de la selección del usuario) lo tengo montado así:
Código SQL [-]
WITH Pivote AS (SELECT * FROM Resultados)
SELECT A.Codigo, A.Fecha, B.Nombre, CS.Partido, PP.Partido, SUM(CS.Votos) VotosCS, SUM(PP.Votos) VotosPP
  FROM Elecciones A, Proceso B, Resultados C
INNER JOIN Pivote CS ON A.CodPrv = CS.CodPrv AND A.Codigo = CS.Proceso AND CS.Partido = 22 AND C.Partido = CS.Partido AND C.Mesa = CS.Mesa
INNER JOIN Pivote PP ON A.CodPrv = PP.CodPrv AND A.Codigo = PP.Proceso AND PP.Partido =  2 AND C.Partido = PP.Partido AND C.Mesa = PP.Mesa
 WHERE A.Codigo IN (39, 32, 28, 24, 42, 37, 36, 35, 38, 34, 30, 26, 40, 33, 29, 25)
   AND A.Proceso = B.Codigo
   AND A.Codigo = C.Proceso AND C.Mesa IN (SELECT Codigo FROM Mesas WHERE Municipio = 1217)
 GROUP BY A.Codigo, A.Fecha, B.Nombre, CS.Partido, PP.Partido
 ORDER BY Nombre, Fecha
EL problema me viene porque si pongo sólo un INNER JOIN sí me da resultados; por ejemplo dejando el primer INNER JOIN:

Pero en el momento que añado más JOIN no me genera ningún resultado. He probado con LEFT en vez de INNER y si saca todas las filas que me interesan y muchas que no:

Por más vueltas que he dado no se me ocurre como hacerlo.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Realizar un Update en delphi con un query concondicion desde otro query!!! rotsen26 SQL 9 09-03-2013 22:17:47
Query dentro de otro query (Access) FGarcia SQL 2 28-12-2007 05:46:05
Hacer un Query de otro Query francisco260184 SQL 9 10-04-2007 03:46:18
Como hacer referencia a un query dentro de otro query? JuanBCT SQL 2 05-09-2006 18:35:25
query dentro de query jonmendi SQL 3 29-07-2005 15:13:33


La franja horaria es GMT +2. Ahora son las 16:29:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi