Tema: no se donde
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/08/2008, 07:10
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: no se donde

Cuando quieres usar funciones agregadas (como SUM()), debes agrupar los conjuntos de datos que identificarán los registros.
Por caso, si lo que quieres es agrupar los totales de
Código:
 SELECT 
   Comprobante.ID, 
   Comprobante.conceptoPago, 
   Comprobante.montoPago, 
   Banco.Nombre, 
   Comprobante.numeroCheque, 
   Comprobante.cuentaCliente, 
   Comprobante.fechaEmision, 
   Comprobante.fechaCobro, 
   Beneficiario.NombreBeneficiario, 
   Comprobante.status 
FROM Beneficiario INNER JOIN 
   (Banco INNER JOIN Comprobante ON Banco.ID = Comprobante.bancoEmisor) 
   ON Beneficiario.ID = Comprobante.beneficiario
por Banco, sería:

Código:
 SELECT 
   Comprobante.ID, 
   Comprobante.conceptoPago, 
   Comprobante.montoPago, 
   Banco.Nombre, 
   Comprobante.numeroCheque, 
   Comprobante.cuentaCliente, 
   Comprobante.fechaEmision, 
   Comprobante.fechaCobro, 
   Beneficiario.NombreBeneficiario, 
   Comprobante.status 
   SUM((Comprobante.montoPago) AS Total 
FROM Beneficiario INNER JOIN 
   (Banco INNER JOIN Comprobante ON Banco.ID = Comprobante.bancoEmisor) 
   ON Beneficiario.ID = Comprobante.beneficiario
GROUP BY  Banco.Nombre
por Banco y Cuenta de Cliente:

Código:
 SELECT 
   Comprobante.ID, 
   Comprobante.conceptoPago, 
   Comprobante.montoPago, 
   Banco.Nombre, 
   Comprobante.numeroCheque, 
   Comprobante.cuentaCliente, 
   Comprobante.fechaEmision, 
   Comprobante.fechaCobro, 
   Beneficiario.NombreBeneficiario, 
   Comprobante.status 
   SUM((Comprobante.montoPago) AS Total 
FROM Beneficiario INNER JOIN 
   (Banco INNER JOIN Comprobante ON Banco.ID = Comprobante.bancoEmisor) 
   ON Beneficiario.ID = Comprobante.beneficiario
GROUP BY  Banco.Nombre, Comprobante.cuentaCliente

y así sucesivamente.

Otro tip: usa alias para las tablas así no tienes q ue referirlas con nombres tan largos. De hecho, si no tienen nombres en común entre tablas, no hace falta decir de qué tabla provienen. Solamente cuando hay nombres iguales entre dos o más se producen problemas de ambigüedad de columnas y allí si tienes que definirlo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)