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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-10-2018
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola,

de esto ha llovido mucho, pero dices que es evidente la salida que quieres.

Yo no la veo tan evidente. Por eso te está costando tanto.

Piensa un poco a ver si la solución que quieres implantar es la más conveniente.


Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #2  
Antiguo 22-10-2018
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
Cita:
Empezado por fjcg02 Ver Mensaje
de esto ha llovido mucho, pero dices que es evidente la salida que quieres.
Yo sí la veo evidente, o al menos me lo parece. Vale: Lo que estoy mostrando son códigos pero al fin y al cabo da lo mismo poner el código que su equivalencia. Hay dos campos comunes en ambas filas, los valores de Grupo1 y Grupo2, y el resto de la información (las otras dos columnas) son las variables. Mi probelma viene en que no veo como implementar el el procedemiento para que sean esas dos columnas las que guíen el "pivote".
Responder Con Cita
  #3  
Antiguo 22-10-2018
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
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.
Responder Con Cita
  #4  
Antiguo 22-10-2018
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola,

yo creo que es exactamente lo que necesitas lo que hace el procedimiento que escribí.
Por un lado los campos por los que se agrupa.
Por otro, los campos que van a dar las cabeceras.

Luego el montaje con los valores.

Creo que ahora lo he entendido. Sería más claro que pongas un juego de ensayo con más registros y mostrando la salida. También que en lugar de códigs pongas literales, que clarifica bastante más.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #5  
Antiguo 23-10-2018
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
Cita:
Empezado por fjcg02 Ver Mensaje
yo creo que es exactamente lo que necesitas lo que hace el procedimiento que escribí.
Por un lado los campos por los que se agrupa.
Por otro, los campos que van a dar las cabeceras.
Sí, ayer estuve viendo el código y creo que se aproxima bastante a lo que me hace falta. Lo que pasa que al tratar de probarlo con SQL Manager me da un error y no lo veo:
Cita:
Error: "Unsuccessful metadata update.
STORE RDB$PROCEDURES failed.
Malformed string.

SQL Code: -607
IB Error Number: 335544351"
Responder Con Cita
Respuesta



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
Referencias Cruzadas GustavoCruz Firebird e Interbase 7 02-12-2008 23:14:25
Consulta de referencias cruzadas victork_py Firebird e Interbase 5 18-06-2007 16:44:14
Consulta de referencias cruzadas jzginez Firebird e Interbase 2 30-07-2004 04:38:25
consultas de referencias cruzadas Manuela SQL 2 31-08-2003 22:24:55
Consultas de referencias cruzadas Manuela Impresión 0 19-08-2003 21:50:43


La franja horaria es GMT +2. Ahora son las 06:30:39.


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