首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

小弟我有个表有入库时间,有出库时间,小弟我想得到该样式号每月的销售和历史库存

2013-11-25 
求教:我有个表有入库时间,有出库时间,我想得到该样式号每月的销售和历史库存库结构大概是这样:货号样式号

求教:我有个表有入库时间,有出库时间,我想得到该样式号每月的销售和历史库存

库结构大概是这样:
货号样式号入库时间出库时间
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 行受影响)

热点排行