![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Recalco:
P.D: Esta es una limitación de la imperfecta implementación del sql del modelo relacional, pero no hay como arreglarla sin los pasos manuales requeridos...
__________________
El malabarista. |
|
#2
|
||||
|
||||
|
prueba con esto:
A ver si te sale... Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#3
|
||||
|
||||
|
JOIN no es la solucion. los join crecen las filas, que es lo que menos se quiere aqui. Necesitan son aggregates (SUMs, GROUP By, ...).
__________________
El malabarista. |
|
#4
|
||||
|
||||
|
Cita:
Efectivamente, necesito reducir el número de líneas. |
|
#5
|
||||
|
||||
|
Vale. Después de unas cuantas pruebas el query me queda así:
y la salida es esta, que es lo que buscaba: ![]() Tal vez se pueda hacer mejor, pero no se me ocurre como. Muchas gracias a todos por la ayuda. |
|
#6
|
||||
|
||||
|
Creo que lo lias mucho...
Saca los datos en filas. Nombre, Codigo, Total Luego agrupas: Campos de agrupacion + Casos FROM ( CONSULTA) GROUP BY Campos de Agrupacion En tu caso: SELECT DATOS.NOMBRE <- Campos para agrupar por filas, pueden ser varios SUM( CASE WHEN DATOS.CODIGO IN (1,2,3) THEN VOTOS ELSE 0 END ) as COLUMNA1, SUM( CASE WHEN DATOS.CODIGO IN (4,5,6) THEN VOTOS ELSE 0 END ) as COLUMNA2, ETC... FROM <- AQUI LA QUERY CON LOS DATOS EN FILAS. El resultado tiene alias DATOS, y devolvera las columnas NOMBRE, CODIGO y VOTOS o las que quieras... La query entre paréntesis ( SELECT A.Nombre, V.Codigo, V.Votos FROM SYSDBA134147 V INNER JOIN PROCESO A ON ( A.Campo1=V.Campo1) <- Desconozco tu modelo... <- Aqui puede ir la where que limite los datos ) DATOS <- FIN DE LA QUERY Aqui puede ir una where sobre el reslutado DATOS --AGRUPAS GROUP BY DATOS.NOMBRE Y a probar... Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#7
|
||||
|
||||
|
Gracias por la respuesta. He estado probando pero o no he montado bien el query o no sale lo que me hace falta. He dejado así el query:
Lo que necesito son los datos de cada uno de los casos y por ello no me hace falta el SUM; es irrelevante. Pero al ejecutar este query las salida es esta: ![]() Así no me vale porque el resultado del query lo necesito para definir un TQRChart. Me hace falta que los resultados de cada tipo queden en una misma fila. No obstante es una idea interesante que no se me había ocurrido. Última edición por Angel.Matilla fecha: 17-01-2020 a las 10:35:59. |
|
#8
|
||||
|
||||
|
¿Puedes poner la estructura de las tablas SOLAMENTE con los campos que necesitas y algunos datos para que podamos probar?
No pongas los campos que no son necesarios para que no nos confundamos.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#9
|
||||
|
||||
|
Cita:
todo lo que no vaya con función de garegado ( max, min, sum, avg, ..) debe ir en el group by. Y utiliza lo que necesites, he puesto SUM como cualquier otra cosa. Y poniedo el group by necesitas SUM(). Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Query con pivote | Angel.Matilla | Firebird e Interbase | 2 | 02-01-2020 15:58:44 |
| Termino Involucion ¿? | amerika111 | Varios | 14 | 12-04-2012 01:08:43 |
| SearchRec sale antes del termino | Paulao | Varios | 3 | 19-07-2011 14:04:36 |
| Detectar término sessión | lucasarts_18 | HTML, Javascript y otros | 13 | 14-04-2008 17:43:05 |
| Terminó de cargar la página? | Novás | Varios | 2 | 08-07-2006 16:24:35 |
|