34,590
社区成员
发帖
与我相关
我的任务
分享
-- 全体分类统计
SELECT Convert(varchar(7),日期,120) 月份,
产品,
地点,
SUM(数量 * (CASE WHEN 原因='买入' THEN 1 ELSE -1 END)) 总数量
FROM table1
GROUP BY Convert(varchar(7),日期,120),产品,地点
-- 仅10月份
SELECT 产品,
地点,
SUM(数量 * (CASE WHEN 原因='买入' THEN 1 ELSE -1 END)) 总数量
FROM table1
WHERE Convert(varchar(7),日期,120) = '2014-10'
GROUP BY 产品,地点
SELECT
[地点]
,SUM(CASE[产品]WHEN 'A' THEN (CASE[原因]WHEN '买入' THEN[数量]ELSE -[数量] END) ELSE 0 END)[A]
,SUM(CASE[产品]WHEN 'B' THEN (CASE[原因]WHEN '买入' THEN[数量]ELSE -[数量] END) ELSE 0 END)[B]
FROM
TB
WHERE [日期]BETWEEN '2014-10-1'AND'2014-10-31'
GROUP BY [地点]
时间你可以自己改select
产品,地点
sum(case when 原因='买入' then 数量 else -数量 end) as 总数量
from
tb
where
datediff(mm,日期,'2014-10-01')=0
group by
产品,地点
select convert(varchar(6),日期,112) as 月份,产品,地点,
sum((case 原因 when '买入' then 1 else -1 end) * 数量)
from tb
group by convert(varchar(6),日期,112),产品,地点