我需要计算azure sql数据仓库中的运行总数已尝试递归CTE,但不受支持

btxsgosb  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(350)

azuresqldatawarehouse不支持递归cte,我需要一个在azuresqldw中工作的解决方案来解决我的问题。
我有一张表,上面有各种产品的详细库存。我有每天生产、销售和退货的产品数量。当天的初始数量将是前一天的最终数量(我在其他表格中有,请参阅图片中的库存水平表),我必须使用初始、生产、,当天售出和退回的数量以及当天计算的最终数量应作为同一产品次日的初始数量,以此类推。
我尝试使用递归CTE,得到错误“此版本不支持递归公共表表达式”
如果你有其他想法,请帮忙。提前谢谢。

Final=Initial+Produced-Sold+Returned

在图片中是我的细节。

4dbbbstv

4dbbbstv1#

此时synapse不支持cte,因此您得到了这个消息。我想我们可以玩一下self-join,在这里实现ask。

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))

相关问题