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 24-08-2022
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
¿Se podría con SELECT LIST?

Tengo este query:
Código SQL [-]
SELECT Codigo, SUM(Importe) Cuota, RefInt
  FROM Recibos
 WHERE CAST(Codigo AS BLOB)||'$'||RefInt IN ('167$120180702','983$120191001','1475$120201001','1475$120191226','2660$120201001','2660$120191226'  ,'2660$120181226')
 GROUP BY Codigo, RefInt
que me genera esta salida:
Cita:
CODIGO CUOTA REFINT
167 10 120180702
983 10 120191001
1475 20 120191226
1475 20 120201001
2660 18 120181226
2660 18 120191226
2660 18 120201001
y me interesa que los datos del mismo código salgan en la misma línea:
Cita:
CODIGO CUOTA REFINT
167 10 120180702
983 10 120191001
1475 20 120191226,120201001
2660 18 120181226,120191226,120201001
He probado con SELECT LIST así:
Código SQL [-]
SELECT Codigo, SUM(Importe) Cuota, LIST(RefInt, ',')
  FROM Recibos
 WHERE CAST(Codigo AS BLOB)||'$'||RefInt IN ('167$120180702','983$120191001','1475$120201001','1475$120191226','2660$120201001','2660$120191226'  ,'2660$120181226')
 GROUP BY Codigo, RefInt
pero me da el mismo resultado que el query original. He estado mirando otras preguntas mías con temas similares y no acabo de ver que estoy haciendo mal.
Responder Con Cita
  #2  
Antiguo 24-08-2022
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Quita la agrupación por RefInt.

SUM, AVG, MIN, MAX, COUNT, LIST y algún otro que me debo dejar son campos que agrupan el resultado de varios registros.
Si agrupas por CODIGO y REFINT, la lista será de cada REFINT por separado y obviamente contendrá solo un registro.
Si agrupas solo por CODIGO, la lista contedrá todos los REFINT que tengan el mismo código.

Código SQL [-]
select codigo, sum(importe) cuota, list(refint, ',')
from recibos
where
cast(codigo as blob) || '$' || refint in ('167$120180702', '983$120191001', '1475$120201001', '1475$120191226', '2660$120201001', '2660$120191226', '2660$120181226')
group by codigo /*,refint*/

Nota al margen:
A mi me gusta hacer las listas con el separador ', ' (coma + espacio).
Por ejemplo LIST(refint, ', ')
  • La lectura es más facil.
  • Si está dentro de un memo, si está configurado para separar por palabras (WordWrap) corta la línea correctamente y queda más fluido.

Otra opción es que el separador sea un salto de línea (#13#10)
Código SQL [-]
select codigo, sum(importe) cuota, list(refint, ascii_char(13) || ascii_char(10))
from recibos
where
cast(codigo as blob) || '$' || refint in ('167$120180702', '983$120191001', '1475$120201001', '1475$120191226', '2660$120201001', '2660$120191226', '2660$120181226')
group by codigo /*,refint*/

Última edición por duilioisola fecha: 24-08-2022 a las 11:18:41.
Responder Con Cita
  #3  
Antiguo 24-08-2022
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
Muchas gracias. No me había dado cuenta que esta poniendo mal el GROUP.
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
Utilizar un valor de un Select dentro de otro Select gluglu SQL 6 15-04-2011 14:22:36
Problema conuna consulta select...not in (select ...) VRO Firebird e Interbase 2 11-08-2005 08:56:35
5 select de 5 tablas diferentes en un select solo sakuragi SQL 6 15-06-2005 18:57:06
Select anidado: Select from (select....) Malon SQL 2 14-10-2004 14:01:24
Select anidado ( Select from select ) Malon Firebird e Interbase 1 05-10-2004 04:14:38


La franja horaria es GMT +2. Ahora son las 18:14:38.


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