none
suma de 2 tablas y resta de una RRS feed

  • Pregunta

  • Hola como están ? tengo una prueba muy severa, se trata de sumar OINV y ODPI y a estas restar ORIN todas con el mismo campo de doctotal, pero requiero los registros es decir no la suma total, es posible que un cliente se encuentre en las 3 tablas OINV y ODPI que son facturas y en la de ORIN que es devolución, las tablas tienen los mismos campos, tengo el siguiente ejemplo pero me falta unir la segunda factura que seria ODPI, si alguno tiene una mejor opción, se los agradecería, saludos:

    with F as (select docdate, docnum, cardcode, cardname, sum(doctotal) as Facturado from OINV group by

    cardcode), N as (select docdate, docnum, cardcode, cardname, sum(doctotal) as Devolución from ORIN

    group by cardcode) select F.cardcode, F.Facturado, isnull(N.Devolucion, 0) as TotalDevolucion from F

    left outer join N on F.cardcode = N.cardcode


    viernes, 23 de enero de 2015 16:45

Respuestas

  • Puedes unir las dos tablas de facturacion usando UNION ALL y luego agrupar.

    WITH F AS (
    SELECT docdate, docnum, cardcode, cardname, SUM(doctotal) AS Facturado 
    FROM
        (
        SELECT docdate, docnum, cardcode, cardname, doctotal FROM OINV
        UNION ALL
        SELECT docdate, docnum, cardcode, cardname, doctotal FROM ODPI
        ) AS T 
    GROUP bycardcode
    )
    , N AS (
    SELECT docdate, docnum, cardcode, cardname, SUM(doctotal) AS Devolución 
    FROM ORIN 
    GROUP BY cardcode
    )
    SELECT
        F.cardcode, F.Facturado, ISNULL(N.Devolucion, 0) AS TotalDevolucion 
    FROM
        F FULL OUTER JOIN N 
        ON F.cardcode = N.cardcode;

    Tambien puedes agrupar las filas en las tablas de agrupacion por separadas y luego concatenarlas usando UNION ALL y volver a agrupar.

    AMB

    Some guidelines for posting questions...

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

    viernes, 23 de enero de 2015 17:33