Usuário com melhor resposta
Como remover campos Null para somar

Pergunta
-
Boa tarde, tenho uma query que me apresenta valores mensalmente, e tenho uma coluna de total, nesta query quando o campo não tem valor ele traz null, mas no total esta linha que tem o campo null não gera soma, como posso tirar o null dos campos para que possa gerar um total na coluna total no final do relatório.
segue a minagem do resultado da query
segue a query
SELECT
B1_COD as CODIGO,
B1_DESC AS PRODUTO,
[Janeiro], [Fevereiro], [Março], [Abril], [Maio], [Junho], [Julho],
[Agosto], [Setembro], [Outubro], [Novembro], [Dezembro],
SUM([Janeiro] + [Fevereiro] + [Março] + [Abril] + [Maio] + [Junho] + [Julho] + [Agosto] + [Setembro] + [Outubro] + [Novembro] + [Dezembro]) AS TOTAL
FROM ( SELECT SB.B1_COD, SB.B1_DESC, m.nm_mes, (SD.D2_QUANT * SB.B1_PESO) AS D2_QUANT FROM SD2020 AS SD left outer join mes m on m.cd_mes = month(SD.D2_EMISSAO)
INNER JOIN SB1020 AS SB WITH (NOLOCK) ON SB.B1_COD = SD.D2_COD
WHERE SD.D_E_L_E_T_ <> '*'
AND SD.D2_CF IN ('5102', '5117', '5119', '5123', '5124', '5403', '5405', '6102', '6108', '6110', '6117', '6119', '6123', '6124', '6403', '6405', '7102')
AND YEAR(SD.D2_EMISSAO) = '2017' ) AS F PIVOT (SUM(D2_QUANT)
FOR nm_mes IN ([Janeiro], [Fevereiro], [Março], [Abril], [Maio], [Junho], [Julho], [Agosto], [Setembro], [Outubro], [Novembro], [Dezembro])) AS P
GROUP BY B1_COD, B1_DESC, [Janeiro],[Fevereiro],[Março],[Abril],[Maio],[Junho],[Julho],[Agosto],[Setembro],[Outubro],[Novembro],[Dezembro]
ORDER BY B1_DESCDesde já agradeço.
JUNIOR GUERREIRO T.I
Respostas
-
Veja se assim deu certo
SELECT B1_COD AS CODIGO, B1_DESC AS PRODUTO, [Janeiro] = ISNULL([Janeiro], 0), [Fevereiro] = ISNULL([Fevereiro], 0), [Março] = ISNULL([Março], 0), [Abril] = ISNULL([Abril], 0), [Maio] = ISNULL([Maio], 0), [Junho] = ISNULL([Junho], 0), [Julho] = ISNULL([Julho], 0), [Agosto] = ISNULL([Agosto], 0), [Setembro] = ISNULL([Setembro], 0), [Outubro] = ISNULL([Outubro], 0), [Novembro] = ISNULL([Novembro], 0), [Dezembro] = ISNULL([Dezembro], 0), SUM(ISNULL([Janeiro], 0) + ISNULL([Fevereiro], 0) + ISNULL([Março], 0) + ISNULL([Abril], 0) + ISNULL([Maio], 0) + ISNULL([Junho], 0) + ISNULL([Julho], 0) + ISNULL([Agosto], 0) + ISNULL([Setembro], 0) + ISNULL([Outubro], 0) + ISNULL([Novembro], 0) + ISNULL([Dezembro], 0)) AS TOTAL FROM ( SELECT SB.B1_COD, SB.B1_DESC, m.nm_mes, (SD.D2_QUANT * SB.B1_PESO) AS D2_QUANT FROM SD2020 AS SD LEFT OUTER JOIN mes m ON m.cd_mes = MONTH(SD.D2_EMISSAO) INNER JOIN SB1020 AS SB WITH (NOLOCK) ON SB.B1_COD = SD.D2_COD WHERE SD.D_E_L_E_T_ <> '*' AND SD.D2_CF IN ( '5102', '5117', '5119', '5123', '5124', '5403', '5405', '6102', '6108', '6110', '6117', '6119', '6123', '6124', '6403', '6405', '7102' ) AND YEAR(SD.D2_EMISSAO) = '2017') AS F PIVOT ( SUM(D2_QUANT) FOR nm_mes IN ([Janeiro], [Fevereiro], [Março], [Abril], [Maio], [Junho], [Julho], [Agosto], [Setembro], [Outubro], [Novembro], [Dezembro])) AS P GROUP BY B1_COD, B1_DESC, [Janeiro], [Fevereiro], [Março], [Abril], [Maio], [Junho], [Julho], [Agosto], [Setembro], [Outubro], [Novembro], [Dezembro] ORDER BY B1_DESC;
Wesley Neves - Brasilia-DFhttps://wesleyneves.wordpress.com/
SELECT Tab.[that's me:]
FROM
(
VALUES
('Wesley Neves'),
('Analista.NET'),
('Pós Graduando em Banco de Dados com ênfase em BI'),
('MTA -SQL Server'),
('MTA -Web Developed')
) AS Tab ("that's me:");
"Se a resposta for útil ou ajudar ,não esqueça de marcar"
Wesley Neves
- Marcado como Resposta Junior Guerreiro sexta-feira, 15 de dezembro de 2017 18:05
Todas as Respostas
-
Use assim:
SUM(ISNULL(@VALOR1,0))
- Sugerido como Resposta Junior Galvão - MVPMVP sábado, 16 de dezembro de 2017 13:14
-
Na linha onde está assim
SD.D2_QUANT * SB.B1_PESO) AS D2_QUANT
coloque assim
( ISNULL(SD.D2_QUANT,0) * ISNULL(SB.B1_PESO,0)) AS D2_QUANT
Wesley Neves - Brasilia-DFhttps://wesleyneves.wordpress.com/
SELECT Tab.[that's me:]
FROM
(
VALUES
('Wesley Neves'),
('Analista.NET'),
('Pós Graduando em Banco de Dados com ênfase em BI'),
('MTA -SQL Server'),
('MTA -Web Developed')
) AS Tab ("that's me:");
"Se a resposta for útil ou ajudar ,não esqueça de marcar"
Wesley Neves
- Sugerido como Resposta Junior Galvão - MVPMVP sábado, 16 de dezembro de 2017 13:14
-
-
Wesley fiz como me orientou não mudou nada, não fez alteração nenhuma no resultado.
FROM ( SELECT SB.B1_COD, SB.B1_DESC, m.nm_mes, (ISNULL(SD.D2_QUANT,0) * ISNULL(SB.B1_PESO,0)) AS D2_QUANT FROM SD2020 AS SD left outer join mes m on m.cd_mes = month(SD.D2_EMISSAO)
INNER JOIN SB1020 AS SB WITH (NOLOCK) ON SB.B1_COD = SD.D2_CODJUNIOR GUERREIRO T.I
-
Veja se assim deu certo
SELECT B1_COD AS CODIGO, B1_DESC AS PRODUTO, [Janeiro] = ISNULL([Janeiro], 0), [Fevereiro] = ISNULL([Fevereiro], 0), [Março] = ISNULL([Março], 0), [Abril] = ISNULL([Abril], 0), [Maio] = ISNULL([Maio], 0), [Junho] = ISNULL([Junho], 0), [Julho] = ISNULL([Julho], 0), [Agosto] = ISNULL([Agosto], 0), [Setembro] = ISNULL([Setembro], 0), [Outubro] = ISNULL([Outubro], 0), [Novembro] = ISNULL([Novembro], 0), [Dezembro] = ISNULL([Dezembro], 0), SUM(ISNULL([Janeiro], 0) + ISNULL([Fevereiro], 0) + ISNULL([Março], 0) + ISNULL([Abril], 0) + ISNULL([Maio], 0) + ISNULL([Junho], 0) + ISNULL([Julho], 0) + ISNULL([Agosto], 0) + ISNULL([Setembro], 0) + ISNULL([Outubro], 0) + ISNULL([Novembro], 0) + ISNULL([Dezembro], 0)) AS TOTAL FROM ( SELECT SB.B1_COD, SB.B1_DESC, m.nm_mes, (SD.D2_QUANT * SB.B1_PESO) AS D2_QUANT FROM SD2020 AS SD LEFT OUTER JOIN mes m ON m.cd_mes = MONTH(SD.D2_EMISSAO) INNER JOIN SB1020 AS SB WITH (NOLOCK) ON SB.B1_COD = SD.D2_COD WHERE SD.D_E_L_E_T_ <> '*' AND SD.D2_CF IN ( '5102', '5117', '5119', '5123', '5124', '5403', '5405', '6102', '6108', '6110', '6117', '6119', '6123', '6124', '6403', '6405', '7102' ) AND YEAR(SD.D2_EMISSAO) = '2017') AS F PIVOT ( SUM(D2_QUANT) FOR nm_mes IN ([Janeiro], [Fevereiro], [Março], [Abril], [Maio], [Junho], [Julho], [Agosto], [Setembro], [Outubro], [Novembro], [Dezembro])) AS P GROUP BY B1_COD, B1_DESC, [Janeiro], [Fevereiro], [Março], [Abril], [Maio], [Junho], [Julho], [Agosto], [Setembro], [Outubro], [Novembro], [Dezembro] ORDER BY B1_DESC;
Wesley Neves - Brasilia-DFhttps://wesleyneves.wordpress.com/
SELECT Tab.[that's me:]
FROM
(
VALUES
('Wesley Neves'),
('Analista.NET'),
('Pós Graduando em Banco de Dados com ênfase em BI'),
('MTA -SQL Server'),
('MTA -Web Developed')
) AS Tab ("that's me:");
"Se a resposta for útil ou ajudar ,não esqueça de marcar"
Wesley Neves
- Marcado como Resposta Junior Guerreiro sexta-feira, 15 de dezembro de 2017 18:05
-