Допустим, мы имеем следующие таблицы «#res»Рекурсивный SUM Sql Server родитель-ребенок-иерархия
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
таблица содержат один мат «MAT1» в 3-х различных магазинах 1, 2, 3, как показано в SParentID Колонка «магазин родитель» store3 является потомком родительского store2 и store2 является еще родителем store1 (иерархия):
Store1
|
Store2
|
Store3
Я хочу, чтобы добавить значение Кол-во в store3 к store2 стать 2, а затем добавить 2 для родителя. Обратите внимание, что это пример, и я хочу сделать это в общем случае, независимо от количества детей, и у верхнего родителя может быть родитель, которого нет в наборе записей!
Эта статья (http://www.codeproject.com/Articles/818694/SQL-queries-to-manage-hierarchical- or-parent-child) может помочь вам. Более эффективный способ - изменить таблицу на вложенную структуру набора (http://en.wikipedia.org/wiki/Nested_set_model). Это позволяет получить желаемый результат с одним запросом, – flec
Я предпочитаю, чтобы он был в коде, а не делал его в sql, в любом случае, благодаря большой статье. все привет –