2016-07-02 3 views
0

데이터를 가져 오는 뷰와 다른 두 개의 테이블이 있습니다. 밝은 색상의 보고서를 만들려면 LightColor0ID, LightColor1ID 등의 열에 dbo.LightColor의 ColorName을 표시하는 것입니다.SQL 테이블 조인 및 보고서의 조회 테이블 데이터 표시

바로 지금 select 문은 1,2 개의 테이블에서 데이터를 가져옵니다. , 3,4,5,6 등 ... 테이블 LightColor 참조 1 = 흰색, 2 = 파란색, 3 = 분홍색, 등 ... 그냥 숫자 값이 아닌 실제 색상 이름이 필요합니다. 내가 제대로 이해 해요 경우

SELECT  
    VCT.CallInfoID 
    ,DLB.LightBehaviorID 
    ,VCT.Name 
    ,VCT.Abbreviation 
    ,VCT.Description 
    ,DLB.LightColor0ID 
    ,DLB.LightColor1ID 
    ,DLB.LightColor2ID 
    ,DLB.LightColor3ID 
    ,DLB.LightColor4ID 
    ,DLB.LightColor5ID 
    ,DLB.LightColor6ID 
    ,DLB.LightColor7ID 
FROM V_CallInfo VCT JOIN 
    LightBehavior DLB 
    ON VCT.LightBehaviorID = DLB.LightBehaviorID 
+0

질문을 수정하고 샘플 데이터와 원하는 결과를 제공하십시오. –

답변

0

, 당신은 각 name 하나가 표시 할의 LightColor 테이블을 여러 번에 join 필요 : 여기

는 샘플입니다

SELECT  
    VCT.CallInfoID 
    ,DLB.LightBehaviorID 
    ,VCT.Name 
    ,VCT.Abbreviation 
    ,VCT.Description 
    ,LC0.ColorName as Color0 
    ,LC1.ColorName as Color1 
    ,LC2.ColorName as Color2 
    ,LC3.ColorName as Color3 
    ,LC4.ColorName as Color4 
    ,LC5.ColorName as Color5 
    ,LC6.ColorName as Color6 
    ,LC7.ColorName as Color7 
FROM V_CallInfo VCT 
    JOIN LightBehavior DLB ON VCT.LightBehaviorID = DLB.LightBehaviorID 
    JOIN LightColor LC0 ON DLB.LightColor0ID = LC0.ColorID 
    JOIN LightColor LC1 ON DLB.LightColor1ID = LC1.ColorID 
    ... 
    JOIN LightColor LC7 ON DLB.LightColor7ID = LC7.ColorID 

null 값이있는 표시등이있는 경우, 대신 outer joins을 사용해야 할 수도 있습니다.

LEFT JOIN LightColor...