我正在使用MS Project Server編寫報表,但遇到了問題。我需要在子父級層次結構中總結一些字段。總和是樹葉中的值的總和。我寫了一個查詢,但它只適用於一小部分數據。SQL優化子父查詢
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
任何想法如何優化該查詢,現在的問題是遞歸的限制。
請指定存儲在MonitoringExampleDatabase表中的幾個示例行。 – Devart
是的,如果你可以提供一些樣本數據和你的預期結果,你會得到更快的幫助。 –