sql按列分组求和

日期货号数量金额2011-2-510001242011-2-510255442011-2-1010001-1-22011-2-1010255-1-12011-2-2110... 日期 货号 数量 金额
2011-2-5 10001 2 4
2011-2-5 10255 4 4
2011-2-10 10001 -1 -2
2011-2-10 10255 -1 -1
2011-2-21 10002 5 10

做完应
日期 货号 数量 金额
2011-2 10001 1 2
2011-2 10002 5 10
2011-2 10255 3 3
展开
 我来答
baiynijecym
推荐于2016-06-19 · TA获得超过1841个赞
知道大有可为答主
回答量:1411
采纳率:66%
帮助的人:1165万
展开全部
你的日期字段是字符串型的?
如果是可以这样
select left(日期,case substring(日期,7,1) when '-' then 6 else 7 end ) as 日期,货号,sum(数量) as 数量,sum(金额) as 金额
from table1
group by left(日期,case substring(日期,7,1) when '-' then 6 else 7 end ),货号

如果日期是datetime型的可以这样
select cast(year(日期) as varchar(4)) + '-' + cast(month(日期) as varchar(2)) ,货号,sum(数量) as 数量,sum(金额) as 金额
from table1
group by cast(year(日期) as varchar(4)) + '-' + cast(month(日期) as varchar(2)),货号
更多追问追答
追问
日期是KDRQ(DATETIME,NULL)
追答
那用第二种就可以了
BuddhaQQ
2012-12-25 · TA获得超过1762个赞
知道小有建树答主
回答量:860
采纳率:100%
帮助的人:978万
展开全部
select trunc(日期,'MM'), 货号, sum(数量) as 数量, sum(金额) as 金额
from 表名
group by trunc(日期,'MM'), 货号
说明一下,trunc是oracle数据库的截取函数,将日期截取到月份,也可以用to_char(日期,'YYYY-MM')
其它数据库的,用对应函数处理即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
熊霸天2012
2012-12-25 · TA获得超过287个赞
知道答主
回答量:410
采纳率:0%
帮助的人:188万
展开全部
select 货号, sum(金额) as 金额,sum(数量) as 数量 from 表名 group by 货号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rkc009
2012-12-25 · TA获得超过1499个赞
知道大有可为答主
回答量:2098
采纳率:60%
帮助的人:1694万
展开全部
SELECT
CONVERT(varchar(7),日期,120),货号,sum(数量) as 数量,sum(金额) as 金额

from table group by 日期, 货号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式