SQL - Filtro de data e soma de valores
22/08/2014
0
Tenho uma tabela no SQL no qual em uma coluna tenho datas, no formato mes/dia/ano, e na outra diversos valores. Para cada data, tenho várias linhas de valores, por exemplo:
7//20/2014 50,00
7/20/2014 10,00
7/20/2014 15,00
8/20/2014 10,00
8/20/2014 20,00
9/20/2014 10,00
Enfim, gostaria de saber como posso fazer um filtro que some o total de cada data (em um intervalo determinado por mim). Por exemplo, esse filtro liberaria o seguinte resultado se os parametros fossem 7/20/2014 e 8/20/2014:
7/20/2014 75,00
8/20/2014 30,00
Muito obrigado!
Rafael Santos
Post mais votado
22/08/2014
select data, sum(valor)
from tabela
where (data >= '7/20/2014' and data <= '8/20/2014')
group by data
Celso Medeiros
Mais Posts
22/08/2014
Fabiano Carvalho
select data, sum(valor) from tabela where (data = '7/20/2014' and valor = 75.00) or (data = '8/20/2014' and valor = 30.00)
24/08/2014
David Styveen
Na cláusula "where" pode ser usado o betwen ao invés de "and", mas em tese é a mesma coisa.
where data '7/20/2014' and '8/20/2014'
Abraços
24/10/2014
Emerson Brito
O Mais ideal, (pois vc. pode querer agrupar outras datas), e se quiser uma data específica aí vc. usa a clausula WHERE:
-- Agrupa Totalizando por datas:
SELECT Data, Sum(Valor) as Valor
FROM Tabela
GROUP BY Data
-- Se quiser uma data específica coloque o WHERE:
SELECT Data, Sum(Valor) as Valor
FROM Tabela
WHERE Data = 'AAAAMMYY'
GROUP BY Data
--IMPORTANTE: Se o seu campo de data contiver a hora gravada, ele vai levar em consideração no agrupamento, aí vc. coloca um CONVERT no campo Data para ele desprezar a hora colocando tudo em 00:00:00.000 assim:
SELECT CAST(CONVERT(CHAR(10),Data,120) AS DATETIME) as Data, sum(t1.Valor) as Valor
FROM Tabela
GROUP BY CAST(CONVERT(CHAR(10),Data,120) AS DATETIME)
Obrigado!
Clique aqui para fazer login e interagir na Comunidade :)