Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-10-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Ubicación: Toledo - España
Posts: 1.418
Poder: 21
Angel.Matilla Va por buen camino
Vale. No sé que ha cambiado en la BB.DD. o en el query pero finalmente he conseguido lo que buscaba y creo que el único cambio que he hecho juraría que ya lo había probado. El query ha quedado así:
Código SQL [-]
WITH Pivote AS (SELECT Estadistica, Grupo1, Grupo2, Grupo3, Dato1 
                  FROM Estadistica 
                 WHERE SUBSTRING(Estadistica FROM 1 FOR 1) = :Estadistica)
SELECT DISTINCT A.Grupo1, A.Grupo2, D.Dato1, E.Dato1
  FROM Estadistica A
  LEFT JOIN Pivote D ON A.Estadistica = D.Estadistica AND A.Grupo1 = D.Grupo1 AND A.Grupo2 = D.Grupo2 AND D.Grupo3 = 3
  LEFT JOIN Pivote E ON A.Estadistica = E.Estadistica AND A.Grupo1 = E.Grupo1 AND A.Grupo2 = E.Grupo2 AND E.Grupo3 = 4
 WHERE SUBSTRING(A.Estadistica FROM 1 FOR 1) = :Estadistica  
 ORDER BY 1, 2
Me he llevado fuera el DISTINCT que había enla tabla temporal y ahora si me sale una única fila. Sólo queda mejorarlo ya que la salida no tiene una número fijo de columnas y para eso si que es muy intereante un STORED PROCEDURE.
Responder Con Cita
  #2  
Antiguo 22-10-2018
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
Buenas,

tengo entendido, de cuando miré en su día la sentencia WITH , que no acaba de funcionar cuando el nº de columnas varía. Siempre debe ser fijo.

Si en tu caso no es así, no valdría.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #3  
Antiguo 23-10-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Ubicación: Toledo - España
Posts: 1.418
Poder: 21
Angel.Matilla Va por buen camino
Cita:
Empezado por fjcg02 Ver Mensaje
tengo entendido, de cuando miré en su día la sentencia WITH , que no acaba de funcionar cuando el nº de columnas varía. Siempre debe ser fijo.
Gracias por contestar. Tal vez me he explciado mal; dentro del WITH el número de columnas va a ser fijo. Lo que varía son los LEFT JOIN, y por lo tanto las columasn de salida, en el SELECT posterior al WITH auqnue siempre será similar al ejemplo con dos salidas para cada LEFT JOIN. El problema que tengo es que los STORED PROCEDURES no los contorlo bien.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Consulta dinamica CoCaInE Varios 4 31-07-2012 21:32:07
problemas con consulta dinamica oktubre Conexión con bases de datos 3 16-04-2011 23:52:18
Consulta de SQL Dinamica pmpisani Tablas planas 1 04-10-2007 17:05:57
Grilla dinamica walito Gráficos 1 09-06-2007 12:16:35
Consulta dinámica en procedimiento almacenado Ivanzinho Firebird e Interbase 2 24-10-2005 15:26:27


La franja horaria es GMT +2. Ahora son las 01:05:57.


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