state month ID sales
-------------------------------------
FL 05/18/2015 0001 12,000
FL 05/19/2015 0001 6,000
FL 05/20/2015 0001 3,000
FL 05/21/2015 0001 6,000
FL 06/01/2016 0001 4,000
TX 06/02/2016 0050 1,000
在具有相同月份但具有不同日期的上表月份列中。我的问题是如何在不同日期的同月添加/总和销售列?
答案 0 :(得分:2)
试试这种方式
select datepart(year,month) as year ,datepart(month,month) as month, sum(sales)
from tablename
group by datepart(year,month) ,datepart(month,month)
答案 1 :(得分:0)
在月份列上使用简单聚合。您可以使用delete
函数提取给定日期的月份。
DATENAME
答案 2 :(得分:0)
首先看一下this question如何将月份列(假设它是一个字符串/ varchar)转换为日期。 接下来,按日期的月份和年份部分对销售列进行分组。
答案 3 :(得分:0)
你是说你想要1月份的总数而且12月份不论年份?
如果是,那么你可以通过DATEPART做一个简单的agrregate和分组(月,日期)
EG
SELECT STATE, DATEPART(month, [month]), SUM(sales)
FROM yourTable
GROUP BY
STATE, DATEPART(month, [month])
答案 4 :(得分:0)
通过使用以下查询,您可以按月,年度获得结果:
SELECT MONTH([Month]) [Month], YEAR([Month]) [Year], SUM(Sales) TotalSales
FROM TestTable
GROUP BY MONTH([Month]), YEAR([Month])
ORDER BY MONTH([Month]), YEAR([Month])
使用给定的样本数据实际执行:
DECLARE @TestTable TABLE ([State] VARCHAR (20), [Month] DATE, ID VARCHAR(5), Sales INT);
INSERT INTO @TestTable ([State], [Month], ID, Sales)
VALUES
('FL', '05/18/2015', '0001', 12000),
('FL', '05/19/2015', '0001', 6000),
('FL', '05/20/2015', '0001', 3000),
('FL', '05/21/2015', '0001', 6000),
('FL', '06/01/2016', '0001', 4000),
('TX', '06/02/2016', '0050', 1000),
('TX', '05/02/2016', '0050', 1000)
SELECT MONTH([Month]) [Month], YEAR([Month]) [Year], SUM(Sales) TotalSales
FROM @TestTable
GROUP BY MONTH([Month]), YEAR([Month])
ORDER BY MONTH([Month]), YEAR([Month])
<强>结果:强>
Month Year TotalSales
5 2015 27000
5 2016 1000
6 2016 5000
答案 5 :(得分:0)
以下查询可能会对您有所帮助: -
declare @test111 table
(name varchar(20) NOT NULL,
month date NOT NULL,
col1 int NOT NULL,
sales int NOT NULL)
Insert into @test111
values('FL','05/18/2015',0001,12000),
('FL','05/19/2015',0001,6000),
('FL','05/20/2015',0001,3000),
('FL','05/21/2015',0001,6000),
('FL','06/01/2016',0001,4000),
('TX','06/02/2016',0050,1000)
select month,sum(sales) over (partition by datepart(mm,month)) Sales
from @test111
输出:
month Sales
2015-05-18 27000
2015-05-19 27000
2015-05-20 27000
2015-05-21 27000
2016-06-01 5000
2016-06-02 5000