Consulta vendas Mês a Mês
13/07/2017
0
Estou tentando uma consulta SQL que traga o seguinte resultado
Cliente VALOR_JANEIRO | VALOR_FEVEREIRO | VALOR_MARCO
JOAO 186.18 | 0 | 200
Mas estou sem sucesso, ja tentei até algo do tipo:
SELECT
E1.id_entidade AS Cliente,
case when MONTH(E1.data_vencimento) = 3 then sum(valor) end as VALORMARCO,
case when MONTH(E1.data_vencimento) = 5 then sum(valor) end as VALORMAIO
FROM
documento_pagar E1
WHERE
YEAR(E1.data_vencimento) in (2016)
and id_entidade = 22
GROUP BY E1.id_entidade, MONTH(E1.data_vencimento)
mas o resultado foi o seguinte:
Cliente VALORMARCO VALORMAIO
22 186.18 NULL
22 NULL 172.18
Jailson Martins
Posts
13/07/2017
Robson Morais
creio que só faltou o else....tente assim e me fale o resultado...
SELECT E1.id_entidade AS Cliente, case when MONTH(E1.data_vencimento) = 3 then sum(valor) else 0 end as VALORMARCO, case when MONTH(E1.data_vencimento) = 5 then sum(valor) else 0 end as VALORMAIO FROM documento_pagar E1 WHERE YEAR(E1.data_vencimento) in (2016) and id_entidade = 22 GROUP BY E1.id_entidade, MONTH(E1.data_vencimento)
13/07/2017
Robson Morais
select fornecedor ,(case when (MONTH(DATA_EMISSAO) = 5) then sum(total) else 0 end) as valormaio ,(case when (MONTH(DATA_EMISSAO) = 6) then sum(total) else 0 end) as valorjunho from dbo.pedido_compra group by FORNECEDOR,MONTH(DATA_EMISSAO)
13/07/2017
Jailson Martins
select id_entidade ,(case when (MONTH(data_vencimento) = 5) then sum(valor) else 0 end) as valormaio ,(case when (MONTH(data_vencimento) = 3) then sum(valor) else 0 end) as valormarco from documento_pagar group by id_entidade,MONTH(data_vencimento)
Resultado: traz duas linhas para o mesmo cliente, sendo que o mesmo faturou em maio e marco
id_entidade******valormaio*****valorjunho
22*******************0.00**********186.18
33*******************0.00***********71.75
22******************172.18**********0.00
13/07/2017
Jailson Martins
;with dados as( select cast(t2.id_entidade as varchar(10))+' - '+ t2.nome as cliente ,(case when (MONTH(t1.data_vencimento) = 1) then sum(valor) else 0 end) as valorjaneiro ,(case when (MONTH(t1.data_vencimento) = 2) then sum(valor)else 0 end) as valorfevereiro ,(case when (MONTH(t1.data_vencimento) = 3) then sum(valor)else 0 end) as valormarco ,(case when (MONTH(t1.data_vencimento) = 4) then sum(valor)else 0 end) as valorAbril ,(case when (MONTH(t1.data_vencimento) = 5) then sum(valor)else 0 end) as valorMaio ,(case when (MONTH(t1.data_vencimento) = 6) then sum(valor)else 0 end) as valorJunho ,(case when (MONTH(t1.data_vencimento) = 7) then sum(valor)else 0 end) as valorJulho ,(case when (MONTH(t1.data_vencimento) = 8) then sum(valor)else 0 end) as valorAgosto ,(case when (MONTH(t1.data_vencimento) = 9) then sum(valor)else 0 end) as valorSetembro ,(case when (MONTH(t1.data_vencimento) = 10) then sum(valor)else 0 end) as valorOutubro ,(case when (MONTH(t1.data_vencimento) = 11) then sum(valor)else 0 end) as valorNovenbro ,(case when (MONTH(t1.data_vencimento) = 12) then sum(valor)else 0 end) as valorDezembro from documento_receber t1 inner join entidade t2 (NOLOCK) on t1.id_entidade = t2.id_entidade where YEAR(data_vencimento) = 2017 and t2.inativo = 0 group by MONTH(data_vencimento),t2.id_entidade,t2.nome ) select dados.cliente ,sum(dados.valorjaneiro) as Jan ,sum(dados.valorfevereiro) as Fev ,sum(dados.valormarco) as Mai ,sum(dados.valorAbril) as Abr ,sum(dados.valorMaio) as Mai ,sum(dados.valorJunho) as Jun ,sum(dados.valorJulho) as Jul ,sum(dados.valorAgosto) as Ago ,sum(dados.valorSetembro) as Setem ,sum(dados.valorOutubro) as Outubro ,sum(dados.valorNovenbro) as Nov ,sum(dados.valorDezembro) as Dez from dados group by dados.cliente
14/07/2017
Robson Morais
select fornecedor, sum(valormaio), sum(valorjunho) from ( select fornecedor ,(case when (MONTH(DATA_EMISSAO) = 5) then sum(total) else 0 end) as valormaio ,(case when (MONTH(DATA_EMISSAO) = 6) then sum(total) else 0 end) as valorjunho from dbo.pedido_compra group by FORNECEDOR,MONTH(DATA_EMISSAO) ) as x group by fornecedor
Clique aqui para fazer login e interagir na Comunidade :)