tsql 递归选择
我有一个表,其下一个结构
Id|State|Quan|SellQuan|LastId
3 |2 | 5 | 0 |2
2 |3 |10 | 5 |1
1 |3 |15 | 5 |NULL
LastId 在 Id 字段上引用,我需要在下一步中计算值:从 Id=3 中获取 Quan,然后添加所有在先前 LastId 上引用的 Id 的 sellquan。就是这样 Id=3 - 最后一个Id = 2 =>从 Id=2 字段 sellquan 中获取值,然后检查 LastId 是否不为空 .在我的例子中LastId = 1 =>取Id=1值SellQaun 结果:5 + 5+ 5 = 15
I have a table with next structure
Id|State|Quan|SellQuan|LastId
3 |2 | 5 | 0 |2
2 |3 |10 | 5 |1
1 |3 |15 | 5 |NULL
LastId is referenced on Id field, I need calulate value on next step: take Quan from Id=3 then add all sellquan with Id referenced on previous LastId. thats meen
Id=3 - lastId = 2 => take value from Id=2 field sellquan then chek if lastId is not null
.In my ecample LastId = 1 => Take Id=1 value SellQaun
Result: 5 + 5+ 5 = 15
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不太确定你想要什么。但我会尝试一下。
首先是一些测试数据:
然后是这样的递归函数:
希望这有帮助
I am not really sure what you want. But I will give it a try.
First some test data:
Then the recursive function like this:
Hope this helps
根据您的要求,我认为您的示例表中有错字。如果您对以下内容进行更改,则会改变 CTE 的复杂性:
我进行该更改,它会简化 CTE。
我希望这有帮助。有关 CTE 的更多信息,我的网站上有几篇文章:
http://stevestedman.com/cte/
Based on what you are asking for, I think you have a typo in your sample table. If you make a change to the following it changes the complexity of the CTE:
My making that change, it simplifies the CTE.
I hope this helps. For more info on CTE's I have several articles on my website:
http://stevestedman.com/cte/