sql统计每天的数据汇总成一条数据按月显示

日期 (A) ID 值(B)
2006-06-06 1 2
2006-06-07 1 2
2005-05-05 2 2
2005-05-06 2 2

显示为 :
ID 值 日期
1 4 2006-06-07
2 4 2005-05-06

日期格式类型为Varchar(50)

2个回答

好像有问题,你这个统计后的日期具体到了天没有意义了,你之前的表是同一个月id是一样的么?如果同一个月的数据id是一样的话
你试试这个
select id,sum(B) 值 ,CONVERT(varchar(7), date, 120 ) rqfrom 表 group by id

herozhangbz
herozhangbz 回复x781711884: select * (你想要什么字段可以自己修改)from (select * from (select row_number()over(partition by id order by 时间 desc) rw ,表.* from 表)where rw=1 )a inner join (select id, sum(值)from 表 group by id)b on a.id=b.id
4 年多之前 回复
herozhangbz
herozhangbz 回复x781711884: 你选最新的也可以,如果你同一个月的id不变的话,我可以帮你弄出来,只是很繁琐。你试试这个
4 年多之前 回复
x781711884
x781711884 回复herozhangbz: 那不取最新的日期取一个当月的开始的日期或者最后的行不行的
4 年多之前 回复
herozhangbz
herozhangbz 回复x781711884: 你的是SqlServer数据库?SqlServer取最新的时间很难取的,oracle数据库很好按你的意思取出来
4 年多之前 回复
x781711884
x781711884 有问题,提示说日期列没有包含在聚合函数或group by 字句中 。统计后具体到天就是去最新的数据里的日期!
4 年多之前 回复

select id,sum(B) 值 ,date from 表 group by date order by id;

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐