【发布时间】:2015-05-25 13:52:59
【问题描述】:
假设我们有下表“#res”
MatID Number MatName StoreName StoreID SParentID Qty
2CA241F6-F48C-4A37-B675-25134C7F84D4 1 Mat1 Store1 194AB76D-01AB-4351-BA6F-5BE0974628F7 00000000-0000-0000-0000-000000000000 12
2CA241F6-F48C-4A37-B675-25134C7F84D4 1 Mat1 Store2 3A34B4D1-5464-461A-9115-20446253FE99 194AB76D-01AB-4351-BA6F-5BE0974628F7 1
2CA241F6-F48C-4A37-B675-25134C7F84D4 1 Mat1 Store3 4594C677-3F55-4E27-8EC9-8209C86FC0CD 3A34B4D1-5464-461A-9115-20446253FE99 1
该表在 3 个不同的商店 1、2、3 中包含一个垫子“Mat1”,如 SParentID 列“Store Parent”所示,store3 是父 store2 的子元素,store2 是父 store1(层次结构):
Store1
|
Store2
|
Store3
我想把store3中qty的值加到store2变成2,然后把2加到父代。请注意,这是一个示例,无论孩子的数量如何,我都想以一般方式进行操作,并且最高父级可能有记录集中不存在的父级!
【问题讨论】:
-
这篇文章 (codeproject.com/Articles/818694/…) 可能会对您有所帮助。一种更有效的方法是将表更改为嵌套集结构 (en.wikipedia.org/wiki/Nested_set_model)。这使您可以通过一个查询获得所需的结果,
-
我更喜欢它在代码中而不是在 sql 中,无论如何感谢这篇精彩的文章。所有的问候
标签: sql sql-server recursion