SQL Server - COUNT y SUM > 0

   
Vista:

COUNT y SUM > 0

Publicado por Daniel (12 intervenciones) el 01/12/2015 00:00:23
Hola al foro, tengo SQL SERVER 2000, ando en busca de una ayuda, tengo los siguientes registros en una tabla MOVIMIENTOS.

CUENTA COMPROBANTE IMPORTE
1 50 100
1 50 60
1 50 20
1 87 110
1 87 -110 (esto sería un pago)

y necesito que me de en un registro el TOTAL GENERAL DE DEUDA y ademas (acá esta mi duda) la cantidad de Comprobantes que debe, o sea

CUENTA DEUDA UNIDADES
1 180 1

sin tener en cuenta el comprobante 87, cuya sumatoria da CERO.

En la anterior oportunidad me contestó correctamente Rafael, pero en ese ejemplo no le puse los pagos, de la manera que lo tengo armado es:

SELECT CUENTA
, SUM(IMPORTE)
, COUNT(DISTINCT COMPROBANTE)
FROM MOVIMIENTOS
GROUP BY CUENTA

pero me devuelve
1 180 2
o sea que en algún lugar le tengo que aclarar que la suma por comprobante sea mayor a 0.

Muchisimas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

COUNT y SUM > 0

Publicado por Isaias (3186 intervenciones) el 01/12/2015 00:33:27
Prueba asi:

SELECT CUENTA
, SUM(IMPORTE)
, COUNT(DISTINCT COMPROBANTE)
FROM MOVIMIENTOS
WHERE IMPORTE > 0
GROUP BY CUENTA

Tambien seria bueno que nos dijeras, que ESPERAS como resultado de tu query
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

COUNT y SUM > 0

Publicado por Daniel (12 intervenciones) el 01/12/2015 00:44:05
Gracias por contestar Elias, pero no, de esa manera no me toma los valores negativos, o sea, me larga como impagos los comprobantes pagos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

COUNT y SUM > 0

Publicado por Rafael (88 intervenciones) el 01/12/2015 09:43:33
La solucion esta en hacerlo en dos pasos:

Una subquery que te el total por cada comprobante y si este es cero no incluirlo.
Y luego una query que te calcule los totales.
1
2
3
4
5
6
7
8
9
10
11
12
SELECT Cuenta
     , COUNT(DISTINCT Comprobante) Comprobantes
     , SUM(Importe) Saldo
FROM   (SELECT Cuenta
             , Comprobante
             , SUM(Importe) Importe
        FROM   Movimientos
        GROUP  BY Cuenta
             , Comprobante
        HAVING SUM(Importe) != 0) A
GROUP  BY Cuenta
;

Ahora bien los datos que das son pobres para una prueba pero si los ampliamos podemos ver esto:
Pongo 4 comprobantes de los cuales 2 se haran cero... y aqui como funciona.
Imagen

Saludos

Pd. Si te sirve la información a mi me sirve un +1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

COUNT y SUM > 0

Publicado por Daniel (12 intervenciones) el 01/12/2015 18:24:15
Impecable Rafael, muchas gracias, funciona ok.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar