2014-03-03 4 views
0

이 쿼리의 결과를 가져와 내 BK 값 대신 다른 테이블을 조회하여 동일한 결과를 반환하려고합니다.한 쿼리의 결과를 다른 쿼리의 소스로 사용하려면 어떻게합니까? (T-SQL)

위의 질의에서
SELECT 
Case when S.SCENARIO_SK is null then -2 
when DS.SCENARIO_SK is null then -1 
else DS.SCENARIO_SK 
end SCENARIO_SK, 

GLP.DATE_SK, 

CASE 
WHEN S.Q_ACCT_STR = GLEM.Q_ACCT_STR 
THEN 
GLA.ACCOUNT_BK 
ELSE 
LEFT(S.Q_ACCT_STR,5) 
END ACCOUNT, 

CASE 
WHEN S.Q_ACCT_STR = GLEM.Q_ACCT_STR 
THEN 
GLO.ORG_BK 
ELSE 
RIGHT(S.Q_ACCT_STR,5) 
END ORG, 

S.Q_ACCT_STR, 
S.GL_PER_AMT, 
S.GL_PER_BAL, 
S.Q_YTD_AMT, 
S.DM_CREATE_DATE, 
S.DM_AUDIT_KEY 

FROM STG_GL_SUMMARY S 
LEFT OUTER JOIN GL_PER_PARMS GLP ON GLP.GLP_AUTO_KEY = S.GLP_AUTO_KEY 
LEFT OUTER JOIN D_GL_SCENARIO DS ON DS.SCENARIO_SK =S.SCENARIO_SK 
LEFT OUTER JOIN STG_GL_EXCEPTION_MAP GLEM ON GLEM.Q_ACCT_STR = S.Q_ACCT_STR 
LEFT OUTER JOIN D_GL_ACCOUNT GLA ON GLA.ACCOUNT_BK = GLEM.ACCOUNT_BK 
LEFT OUTER JOIN D_GL_ORG GLO ON GLO.ORG_BK = GLEM.ORG_BK 

, 나는 다음을 수행 싶습니다 :

SELECT GLA.ACCOUNT_SK 
FROM D_GL_ACCOUNT GLA 
WHERE QUERY(ACCOUNT) = GLA.ACCOUNT.BK 

SELECT GLO.ORG_SK 
FROM D_GL_ORG GLO 
WHERE QUERY(ACCOUNT) = GLO.ORG.BK 

내 최종 결과는 두 쿼리에서 모든 필드 것입니다.

감사합니다. 나는 T_SQL에 비교적 익숙하지 않다.

+0

'# 테이블'에 'INSERT'하고 나서 해당 테이블을 'SELECT FROM'하십시오. – Zane

답변

1

파생 테이블이라고하는 것을 사용할 수 있습니다. 중괄호를 사용하여 내부 쿼리를 래핑하고 별칭을 할당 한 다음 선택을 수행하면됩니다. 예 :

관련 문제