sql 按月求和解决办法
sql 按月求和
A表记录的是每天各员工生成了多少产品,现想按月显示出各个员工每个月生产了多少,不知道sql怎么写。
如:Table A:
ID 员工ID 日期 生成数量
1 001 2013-01-01 30
2 001 2013-01-03 20
3 002 2013-01-02 50
4 001 2013-02-01 20
查询的结果应该是:
ID 员工ID 月份 生成总数
1 001 2013-01 80
2 002 2013-01 20
3 001 2013-02 20
请大侠帮忙
------解决方案--------------------
------解决方案--------------------
A表记录的是每天各员工生成了多少产品,现想按月显示出各个员工每个月生产了多少,不知道sql怎么写。
如:Table A:
ID 员工ID 日期 生成数量
1 001 2013-01-01 30
2 001 2013-01-03 20
3 002 2013-01-02 50
4 001 2013-02-01 20
查询的结果应该是:
ID 员工ID 月份 生成总数
1 001 2013-01 80
2 002 2013-01 20
3 001 2013-02 20
请大侠帮忙
------解决方案--------------------
select ID=row_number()over(order by getdate()),
[员工ID] ,'月份'=substring([月份],1,7),'生成总数'=sum([生成总数])
from A表 with(nololck)
where 筛选条件
group by [员工ID] ,substring([月份],1,7)
------解决方案--------------------
select row_number() over (order by 月份) as ID,* from
(
select 员工ID,月份 = convert(nvarchar(7),月份,25),生成总数 = sum(生产数量)
from tb
group by 员工ID,convert(nvarchar(7),月份,25)
)t