none
Suma de Registos con campos iguales en una tabla temporal

    Question

  • buenas tardes, ocupo ayuda, ya me he bloqueado. hice una consulta la cual de ella cree una tabla temporal, en la cual en el resultado pasa lo siguiente:

    en esa tabla se muestra los campos principales

    Sucursal |Ciclo        | Producto         | Contrato         | importe

       1           12/13            2              ACOI1225046        1812657.09

       2           12/13            2              ACOI1225046         582931.61

       1           12/13            2              BAOI1225020        879631.13

    lo que quiero es sumar los importes que sean del mismo contrato de todas las posibles sucursales que existan. alguien me puede ayudar?? soy nuevo en esto

       


    • Edited by cradleayax Thursday, June 13, 2013 8:21 PM
    Thursday, June 13, 2013 7:45 PM

Answers

  • hola creo según lo que entendí necesitas esto:

    sumar todos los importes donde contrato se repita 2 o mas veces, es decir si hay importes con un solo contrato no tomarlos en cuenta, estoy bien o estoy mal??

    aquí te dejo la query que puede solucionar tu pregunta.

    select contrato,sum(importe) as importe from tutabla group by contrato having count(*) > 1;

    te explico la query, en esta parte

    group by contrato having count(*) > 1;

    agrupas por contrato, donde los registros de contrato sean mayores a 1.

    en esta query te saldrá la suma de importes de los contratos que se repitan 2 o mas veces.

    aquí te dejo un ejemplo de tabla para que veas la query funcionando.

    create table prueba1 (id int , cant int);
    
    insert into prueba1 values (1,1);
    insert into prueba1 values (1,2);
    insert into prueba1 values (1,3);
    insert into prueba1 values (2,1);
    insert into prueba1 values (1,1);
    insert into prueba1 values (3,1);
    insert into prueba1 values (3,1);
    insert into prueba1 values (3,1);
    insert into prueba1 values (3,1);
    
    select id,sum(cant) from prueba1 group by id having count(*) > 1
    comentas como te fue, saludos.

    si mi respuesta te ayudo votala como util, si resolvio tu duda marcala como respuesta, de esta manera ayudas a otros compañeros que tengan dudas similares.

    • Marked as answer by cradleayax Friday, June 14, 2013 1:13 AM
    Thursday, June 13, 2013 9:18 PM

All replies

  • Hola:

    Te fieres a hacer un agrupado ?

    SELECT contrato, SUM( importe ) totalImporte
    FROM tuTabla
    GROUP BY contrato

    Sergio Sánchez Arias
    Oaxaca,México
    AYÚDANOS A AYUDARTE

    Thursday, June 13, 2013 8:28 PM
  • hola creo según lo que entendí necesitas esto:

    sumar todos los importes donde contrato se repita 2 o mas veces, es decir si hay importes con un solo contrato no tomarlos en cuenta, estoy bien o estoy mal??

    aquí te dejo la query que puede solucionar tu pregunta.

    select contrato,sum(importe) as importe from tutabla group by contrato having count(*) > 1;

    te explico la query, en esta parte

    group by contrato having count(*) > 1;

    agrupas por contrato, donde los registros de contrato sean mayores a 1.

    en esta query te saldrá la suma de importes de los contratos que se repitan 2 o mas veces.

    aquí te dejo un ejemplo de tabla para que veas la query funcionando.

    create table prueba1 (id int , cant int);
    
    insert into prueba1 values (1,1);
    insert into prueba1 values (1,2);
    insert into prueba1 values (1,3);
    insert into prueba1 values (2,1);
    insert into prueba1 values (1,1);
    insert into prueba1 values (3,1);
    insert into prueba1 values (3,1);
    insert into prueba1 values (3,1);
    insert into prueba1 values (3,1);
    
    select id,sum(cant) from prueba1 group by id having count(*) > 1
    comentas como te fue, saludos.

    si mi respuesta te ayudo votala como util, si resolvio tu duda marcala como respuesta, de esta manera ayudas a otros compañeros que tengan dudas similares.

    • Marked as answer by cradleayax Friday, June 14, 2013 1:13 AM
    Thursday, June 13, 2013 9:18 PM
  • esa esta bien y la tengo aplicada.... el detalle es que solo quiero tener un registro por contrato

    si el contrato es ACOI1225046        quiero q me sume todos los importes de todas las sucursales... no importando si la sucursal es la 1, la 5, 11, 22... etc... y de la manera como esta el codigo q me proporciono.... me suma y me agrupa de la siguiente manera

    del contrato ACOI1225046   de la sucursal 1 es tanto 100000

    del contrato ACOI1225046   de la sucursal 2 es tanto 100000

    del contrato ACOI1225046   de la sucursal 3 es tanto 100000

    el resultado al que quiero llegar es

     ACOI1225046   = 300000quiero tener solo un registro de todo lo que me muestra y posiblemente creo q a la sucursal tendre q asignarle un valor predeterminado.. se los agradecere


    amilcar

    Thursday, June 13, 2013 10:59 PM
  • eso hace la consulta compañero, te agrupa los contratos que se repitan mas de una vez en un solo registro y te suma sus importes :), checa la consulta bien y veras que lo hace, saludos.

    si mi respuesta te ayudo votala como util, si resolvio tu duda marcala como respuesta, de esta manera ayudas a otros compañeros que tengan dudas similares.

    Thursday, June 13, 2013 11:07 PM
  • me encanto tu idea y la vote.. pero no resolvio mi problema o a lo mejor lo estoy haciendo mal

    amilcar

    Thursday, June 13, 2013 11:08 PM
  • HOLA

    Yo no estoy comprendiendo que es lo que deseas entonces, es posible que nos puedas mostrar un ejemplo de lo que tienes ahorita y el resultado que esperas obtener al agrupar ?? este resultado lo puedes hacer en un excel y de igual manera ponerlo en una imagen.


    Sergio Sánchez Arias
    Oaxaca,México
    AYÚDANOS A AYUDARTE

    Thursday, June 13, 2013 11:43 PM
  • ya lo resolvi amigo :D muchas gracias... lo solucione con lo que me dijo eddie... al parecer estaba filtrando mal... saludos y muchas gracias por tomarte tu tiempo ;)

    amilcar

    Friday, June 14, 2013 1:14 AM