none
sumas y totales RRS feed

  • Pregunta

  • Buen dia a todos... Tengo una base de datos con cerca de 400 mil registros esta estructura de la siguiente manera

    lo que se busca es obtener  totales de manera individual por clave y por el total de todas las claves por año

    y tambien obtener la suma de los montos1, montos2, montos3 y totales de manera individual por clave del año 2012 al 2015  y por el total de todas las claves del año 2012 al 2015.. Espero me haya explicado...

    cuenta              año            monto 1     monto 2    monto 3      total

    12345670        2012           2,854       1,565     2,3567

    12345671       2012            1,654       1,684     1,256

    12345672       2012            2,564       3,564     3,654

    asi hasta el registro 53 mil del año 2012

    cuenta              año            monto 1     monto 2    monto 3         total

    12345670        2013           2,854       1,565     2,3567

    12345671       2013           1,654       1,684     1,256

    12345672       2013            2,564       3,564     3,654

    12345673       2013           1,245       2,356     1,365

    asi hasta el registro 60 mil del año 2013 (crecieron cuentas en el año 2013)

    cuenta              año            monto 1     monto 2    monto 3        total

    12345670        2014           2,854       1,565     2,3567

    12345671       2014          1,654       1,684     1,256

    12345672       2014            2,564       3,564     3,654

    12345673       2014           1,245       2,356     1,365

    12345674       2014          2,564        1,564      2,365

    asi hasta el registro 70 mil del año 2014 (crecieron cuentas en el año 2014)

    cuenta              año            monto 1     monto 2    monto 3       total

    12345670        2015           2,854       1,565     2,3567

    12345671       2015           1,654       1,684     1,256

    12345672       2015            2,564       3,564     3,654

    12345673       2015           1,245       2,356     1,365

    12345674       2015          2,564        1,564      2,365

    12345675      2015            2,456       1,354      1,654

    asi hasta el registro 90 mil del año 2015 (crecieron cuentas en el año 2015)

    1.- como hago para que sume monto1, monto2 y monto 3 y obtener el total por cuenta 

    2.- como hago para sumar  los montos1, montos2, montos3 y los totales de cada cuenta y obtener un solo monto1, monto2, monto3 y total por año.

    3.- como hacer para obtener el total monto1,  totalmonto2,  totalmonto3 y total de montos por cuenta por todos los años del 2012 al 2015.

    4.- como hago para sumar el monto1, el monto2 y el monto3 de la misma cuenta del año 2012 al 2015 y obtener los monto1, monto2, monto3 y el total de la cuenta por los 4 años.

    5.- como hago para saber que cuentas no estan en el 2012 pero si en el 2013 al 2015, las que no estan en el 2013 pero si del 2014 al 2015...

    De antemano agradeciendo su valioso apoyo, y que para un servidor sera de mucha ayuda

    tengo sqlserver2014

    • Editado mmarquez04 jueves, 20 de octubre de 2016 16:42
    jueves, 20 de octubre de 2016 16:30

Respuestas

  • Cual version de SQL Server usas y si es posible que postees la estructura y data de ejemplo en forma de DDL?

    Ejemplo:

    declare @T table (col1 int, col2 date);

    insert into @T (col1, col2) values (1, '20160101'), (2, '20160201');

    Por lo pronto te dire que puedes usar la clausula GROUP BY para agrupar en conjunto con GROUPING SETS para especificar los grupos de totales.

    Ejemplo:

    select cuenta, anio, sum(monto1) as m1, sum(monto2) as m2, sum(monto3) as m3, sum(monto1 + monto2 + monto3) as total
    from T
    group by grouping sets ((cuenta, anio), (cuenta), ())
    order by grouping(cuenta}, cuenta, grouping(anio), anio;

    Chequea los libros en linea para mas informacion al respecto.


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas



    jueves, 20 de octubre de 2016 17:50

Todas las respuestas

  • Cual version de SQL Server usas y si es posible que postees la estructura y data de ejemplo en forma de DDL?

    Ejemplo:

    declare @T table (col1 int, col2 date);

    insert into @T (col1, col2) values (1, '20160101'), (2, '20160201');

    Por lo pronto te dire que puedes usar la clausula GROUP BY para agrupar en conjunto con GROUPING SETS para especificar los grupos de totales.

    Ejemplo:

    select cuenta, anio, sum(monto1) as m1, sum(monto2) as m2, sum(monto3) as m3, sum(monto1 + monto2 + monto3) as total
    from T
    group by grouping sets ((cuenta, anio), (cuenta), ())
    order by grouping(cuenta}, cuenta, grouping(anio), anio;

    Chequea los libros en linea para mas informacion al respecto.


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas



    jueves, 20 de octubre de 2016 17:50
  • el total lo tengo como una variable.. y no como campo.. como hago para que ese total lo ponga en el campo que le corresponde a la cuenta y asi mismo tamien como sumar el resultado de ese total con los demas totales de las consulta individuales para obtener un solo total de todas las  cuentas ? 

    utilizo sqlserver 2014

    gracias por responder :)


    • Editado mmarquez04 jueves, 20 de octubre de 2016 18:10
    jueves, 20 de octubre de 2016 18:08
  • Como mencione antes, seria de ayuda si posteas la estructura de la tabla (solo columnas de interes) y data de ejemplo en forma de DDL.

    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas


    viernes, 21 de octubre de 2016 12:41
  • Pon una estructura de tu tabla 

    para colaborar. 

    viernes, 21 de octubre de 2016 13:13
  • SELECT  cuenta, count(cuenta),
       SUM(monto1+ monto2 + monto3) as total
    FROM
       general
    GROUP BY
     cuenta
     having count (cuenta ) >1

    tabla:

    cuenta            sin nombre de columna      total

    123456780        5                                    7442

    123456781        10                                  6266

    123456782         6                                    5698

    123456783         3                                    2456

    etc, etc...

    total no es un campo que este en la tabla solo es temporal y es el resultado de los montos, como le hago para guardar total en esa misma tabla o comparar el total con otra tabla que tiene el mismo campo temporal llamado total...  espero poderme explicar
    sábado, 22 de octubre de 2016 1:47