MS Project Server を使用してレポートを作成していますが、問題が発生しました。親子階層のいくつかのフィールドを合計する必要があります。合計は、葉の値の合計です。クエリを作成しましたが、小さなデータ セットでしか機能していません。
Task - 10
Task - 2
Task - 6
Task - 6
Task - 2
WITH children AS (
SELECT
tt.ID,
CASE '1' WHEN ISNULL(ttt.Id, '1') THEN tt.Value ELSE 0 END as Value,
CASE '1' WHEN ISNULL(ttt.Id, '1') THEN tt.Value2 ELSE 0 END as Value2,
tt.parentid
FROM [MonitoringExampleDatabase].[dbo].[Table_1] tt
LEFT JOIN [MonitoringExampleDatabase].[dbo].[Table_1] ttt
ON tt.ID = ttt.ParentId
UNION ALL
SELECT t.id, children.value, children.Value2, t.parentid
FROM children
JOIN [MonitoringExampleDatabase].[dbo].[Table_1] t ON children.parentid = t.id
)
SELECT id, sum(value) as Value, SUM(value2) as Value2
FROM children
GROUP BY id
そのクエリを最適化する方法についてのアイデアはありますが、問題は再帰の制限です。