0

Azure SQL Datawarehouse 不支持递归 CTE,我需要一个适用于 Azure SQL DW 的解决方案来解决我的问题。

我有一张表,上面有各种产品的库存详细信息。我有每天生产、销售和退货的产品数量。当天的初始数量将是前一天的最终数量(我在其他表中,请参阅图像中的 Stocklevel 表),我必须使用初始、生产、销售和退货数量计算当天的最终数量当天和当天计算的最终数量应作为同一产品次日的初始数量传递,依此类推。

我尝试使用递归 CTE 并收到错误“此版本不支持递归公用表表达式。”</p>

如果您有任何其他想法,请提供帮助。提前致谢。

Final=Initial+Produced-Sold+Returned

图片中是我的详细信息。

4

1 回答 1

0

目前 Synapse 不支持 CTE,因此您收到了该消息。我认为我们可以玩一下 Self join 并在这里实现要求。

select a.productid, a.initial,a.produced,a.sold,a.Returned,a.Final,convert([date],a.date) as date 
,convert(date,DATEADD(dd,-1,a.Date))as yesterday, 
final =  isnull(a.initial,0) + a.produced + a.sold +a.Returned
from Inventary a 
JOIN Inventary B 
On A.Productid = b.Productid
and a.Date = DATEADD(dd,-1,b.Date)
group by a.productid, a.initial,a.produced,a.sold,a.Returned,a.Final,convert([date],a.date),convert(date,DATEADD(dd,-1,a.Date))
于 2020-08-05T18:39:30.923 回答