SQL Server - Consulta con Group by

   
Vista:

Consulta con Group by

Publicado por Daniel (12 intervenciones) el 11/12/2015 19:55:03
Hola al foro, les hago una pregunta, tengo Microsoft SQL 2000 y una consulta con 4 UNION ALL, en cada consulta tengo un SUM y un group by, por lo tanto, de la misma cuenta me devuelve hasta 4 resultados, y lo que quiero obtener es 1 solo resultado, paso el detalle

SELECT Cuenta, SUM(importe) as TOTAL from MOVIMIENTOS etc,etc,etc
UNION ALL
SELECT Cuenta, SUM(importe) as TOTAL from HISTORICOS etc etc etc
UNION ALL
SELECT Cuenta, SUM(importe) as TOTAL from PEDIDOS etc etc etc
GROUP BY CUENTA
ORDER BY CUENTA

Necesito saber como se hace para que en vez de devolverme N resultados por cada cuenta, me devuelva un solo total, no se si fui claro.
Muchas 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

Consulta con Group by

Publicado por Isaias (3181 intervenciones) el 14/12/2015 22:49:51
Muestranos el resultado

1
2
3
4
5
6
7
8
SELECT Cuenta, Total from(
SELECT Cuenta, SUM(importe) as TOTAL from MOVIMIENTOS etc,etc,etc
UNION ALL
SELECT Cuenta, SUM(importe) as TOTAL from HISTORICOS etc etc etc
UNION ALL
SELECT Cuenta, SUM(importe) as TOTAL from PEDIDOS etc etc etc
GROUP BY CUENTA
ORDER BY CUENTA)
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

Consulta con Group by

Publicado por Rafael (88 intervenciones) el 15/12/2015 10:13:22
Isais con lo que propones seguiria saliendo hasta 3 registros por cuenta te falta sumar...

1
2
3
4
5
6
7
8
9
10
11
SELECT Cuenta, SUM(Total) as TOTAL  from(
    SELECT Cuenta, SUM(importe) as TOTAL from MOVIMIENTOS etc,etc,etc
    GROUP BY CUENTA
    UNION ALL
    SELECT Cuenta, SUM(importe) as TOTAL from HISTORICOS etc etc etc
    GROUP BY CUENTA
    UNION ALL
    SELECT Cuenta, SUM(importe) as TOTAL from PEDIDOS etc etc etc
    GROUP BY CUENTA)
GROUP BY CUENTA
ORDER BY CUENTA

Aunque tampo se si es lo que busca...

Quizas algo asi le sirva mas...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT Cuenta
     , Movimientos
     , Historicos
     , Pedidos
     , Movimientos + Historicos + Pedidos as Total
FROM   (SELECT Cuenta
             , (SELECT SUM(importe) from MOVIMIENTOS etc,etc,etc
                Where  Cuenta=TablaCuentas.Cuenta) as Movimientos
             , (SELECT SUM(importe) from HISTORICOS etc,etc,etc
                Where  Cuenta=TablaCuentas.Cuenta) as Historicos
             , (SELECT SUM(importe) from PEDIDOS etc,etc,etc
                Where  Cuenta=TablaCuentas.Cuenta) as Pedidos
        FROM   TablaCuentas) as SQ1
ORDER   BY CUENTA

Saludos

Pd. Si la informacion te sirve 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
1
Comentar

Consulta con Group by

Publicado por Daniel (12 intervenciones) el 15/12/2015 18:47:39
Muchas gracias Rafael, me resulta mas claro el primer ejemplo, ya me funciona ok, saludos !!!
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