Usuário com melhor resposta
Dúvida em sql

Pergunta
-
Bom dia,
tenho uma tabela 'movimentos' com os seguintes dados:
entidade | data | valor
cliente1 10/01/2015 150,00
cliente1 11/01/2015 65,60
cliente2 10/01/2015 37,00
cliente2 10/01/2015 10,00
cliente3 10/01/2015 28,00
cliente2 11/01/2015 38,00
A dúvida: como montar um sql com sum dos valores por data, sendo que o cliente3 não tem valor para a data 11/01 (neste caso deveria mostrar o cliente na data com valor zero)?
Preciso apresentar assim:
entidade data valor
cliente1 10/01/2015 150,00
cliente2 10/01/2015 47,00
cliente3 10/01/2015 28,00
cliente1 11/01/2015 65,60
cliente2 11/01/2015 38,00
cliente3 11/01/2015 0,00
Respostas
-
Boa tarde,
Jone, experimente mais ou menos dessa forma:
with CTE_Datas as ( select distinct data from Tabela ), CTE_Entidades as ( select distinct entidade from Tabela ) select e.entidade, d.data, COALESCE(SUM(t.valor), 0) as valor from CTE_Datas as d cross join CTE_Entidades as e left join Tabela as t on t.data = d.data and t.entidade = e.entidade group by e.entidade, d.data
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta André Abreu sexta-feira, 6 de março de 2015 17:35
- Marcado como Resposta Jone Cunha sexta-feira, 6 de março de 2015 17:39
Todas as Respostas
-
Jone o select que você pode fazer é esse, caso queira ordenar por valores só acrescentar no final o order by.
select data, entidade, sum(valor) from [sua tabela]
group by data, entidade
order by sum(valor)
--- André Abreu
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Editado André Abreu sexta-feira, 6 de março de 2015 15:28
- Sugerido como Resposta Mr. GMSOFT sexta-feira, 6 de março de 2015 16:33
-
-
-
-
Boa tarde,
Jone, experimente mais ou menos dessa forma:
with CTE_Datas as ( select distinct data from Tabela ), CTE_Entidades as ( select distinct entidade from Tabela ) select e.entidade, d.data, COALESCE(SUM(t.valor), 0) as valor from CTE_Datas as d cross join CTE_Entidades as e left join Tabela as t on t.data = d.data and t.entidade = e.entidade group by e.entidade, d.data
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta André Abreu sexta-feira, 6 de março de 2015 17:35
- Marcado como Resposta Jone Cunha sexta-feira, 6 de março de 2015 17:39
-