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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-05-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
Select con COUNT y SUM no me funciona

Hace tiempo planteé un duda similar a la que tengo ahora y pensé que adaptando el código que distéis en su momento podría valerme, pero no he sido capaz.

Tengo este query sobre una vista de FB 2.5.6:
Código SQL [-]
SELECT COUNT(DISTINCT Codigo) Recibos, Periodo, Forma, Municipio
  FROM Rc03 
 WHERE PerPago = 2
   AND ForPago IN (2,4)
 GROUP BY PerPago, Periodo, ForPago, Forma, Junta, NomJunta
 ORDER BY PerPago, Forma, NomJunta
que me da este resultado:

Yo sé que el importe de esos dos registros es de 150€, pero si en el query añado el SUM así:
Código SQL [-]
SELECT COUNT(DISTINCT Codigo) Recibos, SUM(Cuota) Importe, Periodo, Forma, Municipio
  FROM Rc03 
 WHERE PerPago = 2
   AND ForPago IN (2,4)
 GROUP BY PerPago, Periodo, ForPago, Forma, Junta, NomJunta
 ORDER BY PerPago, Forma, NomJunta
lo que salees esto:

y no sé como hacer para que me dé ese resultado.
He intentado haciendo un subselect:
Código SQL [-]
SELECT COUNT(DISTINCT A.Codigo) Recibos, A.Periodo, A.Forma, A.NomJunta,
       (SELECT SUM(Cuota) FROM Cuotas WHERE Codigo = A.Codigo)
  FROM Rc03 A
 WHERE A.PerPago = 2
   AND A.ForPago IN (2,4)
 GROUP BY A.PerPago, A.Periodo, A.ForPago, A.Forma, A.Junta, A.NomJunta
 ORDER BY PerPago, Forma, NomJunta
ya que el importe que hay que sumar está en esa tabla CUOTAS y el campo código es el que relaciona ambas tablas, pero al tratar de ejecutar el query me da un error:
Cita:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
y no se me ocurre como solucionarlo.

También he probado esto otro:
Código SQL [-]
SELECT A.Periodo, A.Forma, A.NomJunta,
       (SELECT COUNT(Codigo) FROM Persona WHERE Codigo = A.Codigo),
       (SELECT SUM(Cuota) FROM Cuotas WHERE Codigo = A.Codigo)
  FROM Rc03 A
 WHERE A.PerPago = 2
   AND A.ForPago IN (2,4)
 GROUP BY A.PerPago, A.Periodo, A.ForPago, A.Forma, A.Junta, A.NomJunta
 ORDER BY PerPago, Forma, NomJunta
ya que el campo CODIGO es parte de la clave primaria de esa tabla PERSONA y por lo tanto no está repetido, pero me da el mismo error.
Responder Con Cita
 



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
SELECT con SUM y COUNT Angel.Matilla Firebird e Interbase 18 13-06-2018 10:19:36
¿Select count sin group by? zazexx SQL 5 07-08-2008 15:27:11
Mejorar SELECT COUNT ferjavrec2 SQL 0 01-06-2007 21:00:00
valor de SELECT COUNT maruenda SQL 15 25-05-2007 22:58:38
Select Count (distinct X) lunatiko SQL 2 17-10-2004 21:06:45


La franja horaria es GMT +2. Ahora son las 11:39:49.


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