Fórum Case com SUM SQL SERVER 2014 #618824
14/10/2022
0
Boa tarde,
Preciso fazer uma consulta que somando os totais de um período, porém o resultado sai em várias linhas por ter que usar o group by, vou colocar como estou fazendo e como preciso enxergar o resultado.
SELECT
CASE WHEN v.DataEfetivacao is not null THEN
SUM(VlrTotalLiquido)
END as VlrtotalLiquidoEfetivado,
CASE WHEN v.DataEfetivacao is null THEN
SUM(VlrTotalLiquido)
END as VlrtotalLiquidoNaoEfetivado
FROM
Vendas v
WHERE
v.Data Between ''01-09-2022'' and ''30-10-2022''
GROUP BY
v.DataEfetivacao
Resultado
VlrtotalLiquidoEfetivado VlrtotalLiquidoNaoEfetivado
1555,11 218,32
53,66 null
564,58 null
20,00 null
==================================================
Preciso que sai somente em uma linha
VlrtotalLiquidoEfetivado VlrtotalLiquidoNaoEfetivado
2.193,35 218,32
Obrigado.
Preciso fazer uma consulta que somando os totais de um período, porém o resultado sai em várias linhas por ter que usar o group by, vou colocar como estou fazendo e como preciso enxergar o resultado.
SELECT
CASE WHEN v.DataEfetivacao is not null THEN
SUM(VlrTotalLiquido)
END as VlrtotalLiquidoEfetivado,
CASE WHEN v.DataEfetivacao is null THEN
SUM(VlrTotalLiquido)
END as VlrtotalLiquidoNaoEfetivado
FROM
Vendas v
WHERE
v.Data Between ''01-09-2022'' and ''30-10-2022''
GROUP BY
v.DataEfetivacao
Resultado
VlrtotalLiquidoEfetivado VlrtotalLiquidoNaoEfetivado
1555,11 218,32
53,66 null
564,58 null
20,00 null
==================================================
Preciso que sai somente em uma linha
VlrtotalLiquidoEfetivado VlrtotalLiquidoNaoEfetivado
2.193,35 218,32
Obrigado.

Joao Escudeiro
Curtir tópico
+ 0
Responder
Posts
15/10/2022
Emerson Nascimento
inverta a ordem do SUM e CASE.
assim:
desta forma não precisa usar o group by.
assim:
1 2 3 4 5 6 7 | SELECT SUM ( CASE WHEN not (v.DataEfetivacao is null ) THEN v.VlrTotalLiquido END ) VlrtotalLiquidoEfetivado, SUM ( CASE WHEN v.DataEfetivacao is null THEN v.VlrTotalLiquido END ) VlrtotalLiquidoNaoEfetivado FROM Vendas v WHERE v.Data Between '01-09-2022' and '30-10-2022' |
Responder
Gostei + 0
18/10/2022
Joao Escudeiro
Muito Obrigado
inverta a ordem do SUM e CASE.
assim:
desta forma não precisa usar o group by.
assim:
1 2 3 4 5 6 7 | SELECT SUM ( CASE WHEN not (v.DataEfetivacao is null ) THEN v.VlrTotalLiquido END ) VlrtotalLiquidoEfetivado, SUM ( CASE WHEN v.DataEfetivacao is null THEN v.VlrTotalLiquido END ) VlrtotalLiquidoNaoEfetivado FROM Vendas v WHERE v.Data Between '01-09-2022' and '30-10-2022' |
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)