10 回答
TA贡献2011条经验 获得超2个赞
试试这个sql文
--日期 CreateTime
--门店 shop
--商品 goods
--超库存次数 PerCount
SELECT temp.shop,temp.goods,ceiling(COUNT(1)*1.0/3) AS PerCount
FROM
(
SELECT CreateTime,shop,Goods,StockCount
FROM testStock ts
WHERE stockCount > 0 AND (DATENAME(dw,CreateTime)<>'sunday' AND DATENAME(dw,CreateTime)<>'Saturday')
AND EXISTS ( SELECT 1
FROM testStock
WHERE stockCount > 0
AND ts.goods = goods
AND
(
DATEDIFF(DAY, ts.CreateTime, CreateTime) = 1
OR
(
DATENAME(dw,CreateTime)='Saturday' AND DATEDIFF(DAY, ts.CreateTime, CreateTime)=3
)
)
)
AND EXISTS ( SELECT 1
FROM testStock
WHERE stockCount > 0
AND ts.goods = goods
AND
(
DATEDIFF(DAY, ts.CreateTime, CreateTime) = 2
OR
(
DATENAME(dw,CreateTime)='sunday' AND DATEDIFF(DAY, ts.CreateTime, CreateTime)=4
)
)
)
)
temp
GROUP BY temp.shop,temp.goods
TA贡献1801条经验 获得超16个赞
你好,
先分析下你的源数据表的格式是
超库存表 { 日期, 门店, 商品, 超库存次数 }
请问有为源表设置集聚索引(主键)吗?
然后你在说一下你具体需要得到的结果表的列数及他们的列名具体是什么要求?
毕竟
结果表 { 日期, 星期N, 超库存次数 }
这个应该不是你想要的结果表的规格!
- 10 回答
- 0 关注
- 832 浏览
添加回答
举报