求教:我有个表有入库时间,有出库时间,我想得到该样式号每月的销售和历史库存
库结构大概是这样:
货号样式号入库时间出库时间
a001102011-1-10
b002102011-1-102011-2-1
c003102012-1-152012-2-2
d004102013-2-32013-1-5
e005102013-2-3
f006152011-2-152011-3-16
g007152011-2-162012-3-16
h009152013-1-10
m012182011-1-4
c009182011-4-52012-5-6
f008182012-2-192013-1-1
e008182013-1-52013-2-6
我想得到的结果:
样式号日期销售件数库存件数
102011-211
102012-211
102013-112
152011-310
152012-311
182012-511
182013-111
182013-211
;WITH cte AS (
SELECT 货号,样式号,入库时间, 出库时间,
CASE WHEN 出库时间 IS NOT NULL THEN 1 ELSE 0 END AS 销售
FROM #a
)
SELECT cte.样式号,CONVERT(VARCHAR(7),cte.出库时间) AS 日期,cte.销售,(
SELECT ISNULL(SUM(CASE WHEN 出库时间 IS NULL THEN 1 ELSE 0 END),0)
FROM #a WHERE #a.样式号=cte.样式号 AND #a.入库时间<cte.出库时间
) AS 库存
FROM cte
WHERE cte.出库时间 IS NOT NULL
样式号 日期 销售 库存
----------- ------- ----------- -----------
10 2011-02 1 1
10 2012-02 1 1
10 2013-01 1 2
15 2011-03 1 0
15 2012-03 1 0
18 2012-05 1 1
18 2013-01 1 1
18 2013-02 1 1
(8 行受影响)