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 展开
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 展开
4个回答
展开全部
你的日期字段是字符串型的?
如果是可以这样
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)),货号
如果是可以这样
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)
追答
那用第二种就可以了
展开全部
select trunc(日期,'MM'), 货号, sum(数量) as 数量, sum(金额) as 金额
from 表名
group by trunc(日期,'MM'), 货号
说明一下,trunc是oracle数据库的截取函数,将日期截取到月份,也可以用to_char(日期,'YYYY-MM')
其它数据库的,用对应函数处理即可
from 表名
group by trunc(日期,'MM'), 货号
说明一下,trunc是oracle数据库的截取函数,将日期截取到月份,也可以用to_char(日期,'YYYY-MM')
其它数据库的,用对应函数处理即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select 货号, sum(金额) as 金额,sum(数量) as 数量 from 表名 group by 货号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT
CONVERT(varchar(7),日期,120),货号,sum(数量) as 数量,sum(金额) as 金额
from table group by 日期, 货号
CONVERT(varchar(7),日期,120),货号,sum(数量) as 数量,sum(金额) as 金额
from table group by 日期, 货号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询