良い一日。
階層クエリから結果を取得した後に一時テーブルを生成し、それらの結果をすべて同じクエリ内で表示しようとしています (したがって、再帰クエリはテーブルから必要な結果を取得し、CREATE TABLE
クエリはそれらの結果を表示します)。
私が抱えている問題は、それらの結果を表示するためのクエリを取得することです。再帰の後に一時テーブル クエリを作成しようとしています。ただし、データの戻り値は、再帰の結果のみを示しています。
ご協力ありがとうございます。
クエリ:
WITH orgCode_hierarchy (ParentOrgCodeID, OrgCodeID, OrgCode, OrgName, OrgCodeSortOrder, LEVEL) AS
(
-- Initializing:
SELECT h_base.ParentOrgCodeID, h_base.OrgCodeID, h_base.OrgCode, h_base.OrgName, cast('::' + h_base.OrgCode + '::' AS VARCHAR (200)) AS OrgCodeSortOrder, 0 AS LEVEL
FROM L_OrgCode h_base
WHERE h_base.OrgCode is not null
UNION all
-- Executing recursive:
SELECT h_child.ParentOrgCodeID, h_child.OrgCodeID, h_child.OrgCode, h_child.OrgName, cast (ho.OrgCodeSortOrder + CASE WHEN left(h_child.OrgCode, 2) = '::' THEN '::' ELSE '' END + h_child.OrgCode + '::' AS VARCHAR (200)) AS OrgCodeSortOrder, LEVEL + 1 AS LEVEL
FROM L_OrgCode h_child
inner join orgCode_hierarchy ho on h_child.ParentOrgCodeID = ho.OrgCodeID
)
-- CTE:
SELECT DISTINCT ParentOrgCodeID, OrgCodeID, OrgCode, OrgName, OrgCodeSortOrder, LEVEL
FROM orgCode_hierarchy
WHERE OrgCode LIKE '2.2.1.1%'
-- ORDER BY 1
ORDER BY OrgCode, 1
--Create temp tbl for the name/org code search
CREATE TABLE #OrgCodesHier
(
OrgCodeID int,
OrgCode_Level int,
OrgName varchar(255),
OrgCode varchar(50),
ParentOrgCodeID varchar(50)
PRIMARY KEY (OrgCode)
)
INSERT INTO #OrgCodesHier (OrgCodeID, OrgCode_Level, OrgName, OrgCode, ParentOrgCodeID)
SELECT * FROM #OrgCodesHier