我正在將SQL Server SQL語句翻譯成其目前的ANSI通用等效語句,並且使用WITH語句阻塞了遞歸語句。ANSI 92遞歸SQL語句要求
對於專注於問題的緣故,如下
如果我有兩個表
ReportingUnit
- COL1我會簡化問題:關鍵
- col2:ParentReportingUnitKey
設施
- COL1:重點
- COL2:ParentReportingUnitKey
這種結構被描述報告單位下降到工廠,其中一個報告單位的層次結構可能有0·1個直接家長報告單位和0·n個兒童報告單位。
設施是一個'葉'記錄,鏈接到報告單位。
我需要編寫一個ANSI 92有效的SQL語句(或者最壞的一個可以在Oracle,DB2和SQL Server上運行的語句),它將返回與給定報告單元相關的所有設施。
例如
- ReportingUnit R1已經ReportingUnit孩子R1.1和R1.2
- ReportingUnit R1.1有孩子R1.1.1,R1.1.2
ReportingUnit R1.2有孩子R1.2.1,R1 2.2
設施F1有一個父報告單位R1.1.1
- 設施F2有父報告單位R1.1.2
- 發基lity F3有父報告單位R1.2.1
- 設施F4有父報告單位R1.2.2
銘記有可能是0 .. N的ReportingUnit表遞歸的水平,怎麼能在給定參數ReportingUnit = R1的情況下,我從SQL語句返回所有4個設施?
+1。嵌套集是在SQL中執行任意深度層次結構的方式;父行外鍵幾乎永遠不是可用的解決方案。 – bobince 2008-11-24 13:38:02