Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

la suma de una suma

Estas en el tema de la suma de una suma en el foro de SQL Server en Foros del Web. Hola, tengo un problemilla con una suma de una suma. Me explico... SELECT inv.amountPayable - SUM(ip.amount) AS amountDue SUM( inv.amountPayable - SUM(ip.amount) ) AS totalAmountDue ...
  #1 (permalink)  
Antiguo 07/08/2009, 04:48
 
Fecha de Ingreso: agosto-2009
Mensajes: 10
Antigüedad: 14 años, 9 meses
Puntos: 0
la suma de una suma

Hola,

tengo un problemilla con una suma de una suma. Me explico...

SELECT inv.amountPayable - SUM(ip.amount) AS amountDue
SUM( inv.amountPayable - SUM(ip.amount) ) AS totalAmountDue
FROM invoice inv INNER JOIN
invoicePaiment ip ON inv.id = ip.id_invoice

¿Cómo puedo realizar esa "nested sum"?

Gracias
  #2 (permalink)  
Antiguo 07/08/2009, 07:34
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: la suma de una suma

Y cual es el problemilla? No comprendo del todo que quieres hacer.
¿Quieres que aparezcan las 2 columnas?
Podrias usar una subconsulta.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 07/08/2009, 07:42
 
Fecha de Ingreso: agosto-2009
Mensajes: 10
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: la suma de una suma

Hola,
el problema es que cuando intento realizar esta "suma de una suma" sum( sum() ),
recibo siempre el siguiente error:

Msg 130, Level 15, State 1, Line 16
No es posible usar una función de agregado con una expresión que contiene un agregado o una subconsulta.

Y, sí, lo que pretendo es mostrar ambas columnas. ¿Se te ocurre cómo lo puedo hacer?

gracias
  #4 (permalink)  
Antiguo 07/08/2009, 07:56
Avatar de Luoksesi  
Fecha de Ingreso: julio-2009
Mensajes: 6
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: la suma de una suma

Puedes hacer una subconsulta...algo como esto:

SELECT
SUM(tabla1.campo-tabla3.suma)
FROM
tabla1 INNER JOIN
(
SELECT
pk2,
SUM(campo) AS suma
GROUP BY pk2
FROM tabla2) tabla3
ON tabla3.pk=tabla1.pk

Última edición por Luoksesi; 07/08/2009 a las 07:57 Razón: sql errado
  #5 (permalink)  
Antiguo 07/08/2009, 08:50
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: la suma de una suma

Bueno, seria mas o menos asi:
Código sql:
Ver original
  1. SELECT cant - SUM(campo), SUM(tabla3.suma)
  2. FROM tabla1
  3. INNER JOIN (
  4.     SELECT pk, cant - SUM(campo) AS suma
  5.     FROM tabla1
  6.     GROUP BY pk, cant
  7. ) tabla3 ON tabla1.pk = tabla3.pk
  8. GROUP BY cant
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #6 (permalink)  
Antiguo 10/08/2009, 01:47
 
Fecha de Ingreso: agosto-2009
Mensajes: 10
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: la suma de una suma

Yeap! Ha funcionado como la seda, lo acabo de probar esta manana. Muchas gracias a los dos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:51.