2017-11-27 6 views
0

십자형 적용에서 폭이 넓은 형식으로 데이터를 뒤집기 위해 사용했습니다. 다음 질문에서 답을 사용했습니다. Using PIVOT to Flip Data from Wide to Tall왼쪽 결합 SQL에서 교차 적용을 사용하여 만든 임시 열을 사용할 수 없습니다.

임시 열 Sector을 만들었습니다. 이 열을 다른 테이블의 왼쪽 결합에 사용하고 싶습니다. 하지만 난 사람이이 문제를 해결하는 데 도움이 수이 줄 V.Sector = S.[Sector name]

SELECT Date, 
     Country, 
     Sector, 
     PE, 
     PX_BOOK 
     S.Sector_level 
FROM [Economic_Data].[dbo].[Sector_Valuations] V 
CROSS APPLY 
(
    VALUES 
    ('Large Cap Equity',[Large Cap Equity_PE],[Large Cap Equity_book]), 
    ('Mid Cap Equity',[Mid Cap Equity_PE],[Mid Cap Equity_book]), 
    ('Small Cap Equity',[Small Cap Equity_PE],[Small Cap Equity_book]), 
    ('Value Index',[Value Index_PE],[Value Index_book]), 
    ('Growth Index',[Growth Index_PE],[Growth Index_book]), 
    ) x (Sector, PE, PX_BOOK) 
Left join [Economic_Data].[dbo].[Sector level] S 
on V.Sector = S.[Sector name] 

에 오류 Invalid column name 'Sector'을 얻고있다. 감사!

답변

2

당신은 cross apply 별명을 참조 할 필요가 : 마지막 쉼표를 제거해야합니다 같은

[Economic_Data].[dbo].[Sector level] S 
on V.Sector = x.[Sector name] 
--------------^ 
1

그것 보인다.

SELECT Date, 
     Country, 
     Sector, 
     PE, 
     PX_BOOK 
     S.Sector_level 
FROM [Economic_Data].[dbo].[Sector_Valuations] V 
CROSS APPLY 
(
    VALUES 
    ('Large Cap Equity',[Large Cap Equity_PE],[Large Cap Equity_book]), 
    ('Mid Cap Equity',[Mid Cap Equity_PE],[Mid Cap Equity_book]), 
    ('Small Cap Equity',[Small Cap Equity_PE],[Small Cap Equity_book]), 
    ('Value Index',[Value Index_PE],[Value Index_book]), 
    ('Growth Index',[Growth Index_PE],[Growth Index_book])--, <------ 
    ) x (Sector, PE, PX_BOOK) 
Left join [Economic_Data].[dbo].[Sector level] S 
on V.Sector = S.[Sector name]