공통 테이블 식에 대해 JOIN 하위 쿼리를 수행 할 수 있습니까? 그렇지 않다면 누군가 내가 아래에서하려고하는 것을 수행하는 방법을 알려줄 수 있습니까? 좋은 예가 될 것입니다. 예를 들어공통 테이블 식 (CTE)에 대한 T-SQL 조인
:
LEFT JOIN (
;WITH [UserDefined]
AS (SELECT *, -- Make sure we get only the latest revision.
ROW_NUMBER() OVER (PARTITION BY [ID]
ORDER BY [RevisionNumber] DESC) AS RN
FROM [syn_Change])
SELECT [UserDefined].[ID]
,[UserDefined].[ChangeNumber]
,[UserDefined].[Usr_CoResponsibility]
,[UserDefined].[Usr_StarFlowStatus]
FROM [UserDefined]
WHERE (RN = 1)
) [UserColumns]
ON [UserColumns].[ChangeNumber] = [CTE].[ChangeNumber]
여기 내 전체 쿼리는 다음과 같습니다
;WITH CTE
AS (SELECT *, -- Make sure we get only the latest revision.
ROW_NUMBER() OVER (PARTITION BY [ItemID]
ORDER BY [RevisionNumber] DESC) AS RN
FROM [dw_Change])
SELECT [CTE].[ItemID]
,[CTE].[ViewID]
,[CTE].[FolderItemID]
,[CTE].[RevisionNumber]
,[CTE].[ChangeNumber]
,[CTE].[Synopsis]
,[CTE].[Description]
,[CTE].[EnteredOn]
,[CTE].[Responsibility]
--,[UserColumns].[Usr_CoResponsibility]
--,[UserColumns].[Usr_StarFlowStatus]
,[CTE].[Status] -- This will display the human name on the front-end with code.
,[Users].[F7] AS [ResponsibilityName]
,[GroupName].[Name] AS [AppGroupName]
,[AppName].[Name] AS [AppName]
FROM CTE
LEFT JOIN [S3] [Users] ON [Users].[F0] = [CTE].[Responsibility]
LEFT JOIN (SELECT [Name], [ViewID]
FROM [dw_Folder]
WHERE ([FolderItemID] = -1)) [GroupName]
ON [GroupName].[ViewID] = [CTE].[ViewID]
LEFT JOIN (SELECT [Name], [ItemID]
FROM [dw_Folder]
WHERE ([FolderItemID] <> -1)) [AppName]
ON [AppName].[ItemID] = [CTE].[FolderItemID]
LEFT JOIN (
;WITH [UserDefined]
AS (SELECT *, -- Make sure we get only the latest revision.
ROW_NUMBER() OVER (PARTITION BY [ID]
ORDER BY [RevisionNumber] DESC) AS RN
FROM [syn_Change])
SELECT [UserDefined].[ID]
,[UserDefined].[ChangeNumber]
,[UserDefined].[Usr_CoResponsibility]
,[UserDefined].[Usr_StarFlowStatus]
FROM [UserDefined]
WHERE (RN = 1)
) [UserColumns]
ON [UserColumns].[ChangeNumber] = [CTE].[ChangeNumber]
WHERE (RN = 1)
정말 고마워요!
그리고 하나의 CTE가 다른 CTE보다 먼저 정의되는 한, 그 CTE는 다음 CTE 내에서 참조 될 수 있습니다. – Bora