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 Buscar Temas de Hoy Marcar Foros Como Leídos

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.735
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


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
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 01:09:56.


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