none
Sustituir NULL por 0's en PIVOT RRS feed

  • Pregunta

  • Buenos días a todos!

    Recurro nuevamente a todos ustedes; requiero una orientación sobre cómo poder sustituir valores NULL por 0 en los resultados del PIVOT. Les muestro mi query y los resultados que arroja.

    SELECT *
    FROM
    (
    SELECT ELEFAC.CVE_ART AS CODIGO_ART, INVENTARIO.DESCR AS DESCRIPCION, VENDEDOR.NOMBRE AS AGENTE, ISNULL(ELEFAC.CANT, 0) AS CANTIDAD
    FROM INVE01 INVENTARIO

    LEFT JOIN PAR_FACTF01 ELEFAC ON INVENTARIO.CVE_ART = ELEFAC.CVE_ART
    LEFT JOIN FACTF01 FACTURA ON ELEFAC.CVE_DOC = FACTURA.CVE_DOC
    LEFT JOIN VEND01 VENDEDOR ON FACTURA.CVE_VEND = VENDEDOR.CVE_VEND

    WHERE YEAR(FACTURA.FECHA_DOC) = '2019' AND MONTH(FACTURA.FECHA_DOC) = 1

    GROUP BY ELEFAC.CVE_ART, INVENTARIO.DESCR, VENDEDOR.NOMBRE, VENDEDOR.CVE_VEND, ELEFAC.CANT
    ) AS LaFuente
    PIVOT (
    SUM(CANTIDAD) FOR AGENTE IN ([VENDEDOR 0],
    [VENDEDOR 1],
    [OTROS],
    [VENDEDOR 3],
    [VENDEDOR 4],
    [VENDEDOR 5])
    ) AS ElPivote

    La consulta anterior, me genera los resultados que necesito, sin embargo, me gustaría que, para aquellos valores sean NULL, sean reemplazados  por 0 para aquellos datos en que los agentes de ventas no han realizado venta alguna de un producto.

    Muchas gracias. Y espero puedan ayudarme (de nuevo).

    Saludos,
    JFM


    Juan F.

    jueves, 18 de julio de 2019 14:09

Respuestas

  • Hola Juan C Farias M:

    Si la salida que tienes, te devuelve las filas con los valores pivotados de los vendedores 0, 1, otros, 3, 4, 5, lo que pides dado que para pivotar utilizas sum, no es cambiar 

    estos null por 0?

    SELECT CODIGO_ART, 
           DESCRIPCION, 
           ISNULL([VENDEDOR 1], 0) AS [VENDEDOR 1], 
           ISNULL([OTROS], 0) AS [OTROS], 
           ISNULL([VENDEDOR 3], 0) AS [VENDEDOR 3], 
           ISNULL([VENDEDOR 4], 0) AS [VENDEDOR 4], 
           ISNULL([VENDEDOR 5], 0) AS [VENDEDOR 5]
    FROM
    (
        SELECT ELEFAC.CVE_ART AS CODIGO_ART, 
               INVENTARIO.DESCR AS DESCRIPCION, 
               VENDEDOR.NOMBRE AS AGENTE, 
               ISNULL(ELEFAC.CANT, 0) AS CANTIDAD
        FROM INVE01 INVENTARIO
             LEFT JOIN PAR_FACTF01 ELEFAC ON INVENTARIO.CVE_ART = ELEFAC.CVE_ART
             LEFT JOIN FACTF01 FACTURA ON ELEFAC.CVE_DOC = FACTURA.CVE_DOC
             LEFT JOIN VEND01 VENDEDOR ON FACTURA.CVE_VEND = VENDEDOR.CVE_VEND
        WHERE YEAR(FACTURA.FECHA_DOC) = '2019'
              AND MONTH(FACTURA.FECHA_DOC) = 1
        GROUP BY ELEFAC.CVE_ART, 
                 INVENTARIO.DESCR, 
                 VENDEDOR.NOMBRE, 
                 VENDEDOR.CVE_VEND, 
                 ELEFAC.CANT
    ) AS LaFuente PIVOT(SUM(CANTIDAD) FOR AGENTE IN([VENDEDOR 0], 
                                                    [VENDEDOR 1], 
                                                    [OTROS], 
                                                    [VENDEDOR 3], 
                                                    [VENDEDOR 4], 
                                                    [VENDEDOR 5])) AS ElPivote;

    Salida:

    viernes, 19 de julio de 2019 3:53