2014-05-12 2 views
1

아래 시나리오에 대한 조언이 필요합니다. 나는 두 사람은 가입 한 테이블SQL Insert record on 결과 집합의 각 레코드에 대해

표 A 표 B가 HueID있는 동안 ContrastId, 그들은이 있어야한다

Select ColorCD, ContrastId, HueId, 
From TableA TA 
Inner JOIN TableB TB 
TA.ColorID = TB.ColorID 

에게 ColorId

에 의해 위의 SELECT 문의 결과에 가입 된 열이 (테이블 A와 테이블 B를 말한다) 다른 테이블 (예를 들어 표 C) 결과의

예에 삽입 : 나는 결과를 둘 필요가있는 표 C에 무슨 일이 있었 싶은

ColorCD | ContrastID | HueID 
----------------------------- 
111000 | 123  | 555 
111100 | 114  | 548 
110015 | 128  | 265 

설정은 아래와 같습니다.

표 C 레이아웃에

INSERT INTO dbo.TableC (Gen_N, ColorCD, ColorType ,Identifier, ProcessDT) 
      SELECT Gen_N, ColorCD, 'Contrast' ,Identifier, ProcessDT 
      From TableA TA 
      Inner JOIN TableB TB 
      TA.ColorID = TB.ColorID 


Gen_N | ColorCD | ColorType | Identifier 
------------------------------------------  
Color | 111000 | Contrast | 123 
Color | 111000 | Hue  | 555 
Color | 111100 | Contrast | 148 
Color | 111100 | Hue  | 548 
Color | 110015 | Contrast | 128 
Color | 110015 | Hue  | 256 

사과, 나는 여기에 표를 삽입하는 방법을 모르겠어요. :) 도와 줘서 고마워. 어떻게해야할지 확신하지 못하는 결과 세트의 모든 레코드를 얻으려면 여기 루프를 수행해야한다고 생각합니다.

도움이 필요하십니까? 고마워요.

+0

?? –

답변

1

루프가 필요 없습니다. 입력란이 올바른 것으로 가정하면 각 유형에 대해 을 Union으로 할 수 있습니다.

이 묵시적 구조 작동한다 :`ProcessDT` 열의 값은 무엇

Insert TableC (Gen_N, ColorCD, ColorType, Identifier, ProcessDT) 
    Select Gen_N, ColorCD, 'Contrast', ContrastId, ProcessDT 
    From TableA TA 
    Join TableB TB On TA.ColorID = TB.ColorID 
Union All 
    Select Gen_N, ColorCD, 'Hue', HueID, ProcessDT 
    From TableA TA 
    Join TableB TB On TA.ColorID = TB.ColorID 
관련 문제