2014-01-22 3 views
0

두 개의 열, LABEL_IDTYPE이 있습니다.SQL Server : 두 개 이상의 레코드를 동일한 값으로 설정하십시오.

LABEL_ID  TYPE 
1234   Salad 
1234   Dressing 
4455   Croutons 
5889   Salad 
6574   Nuts 
8845   Bacon Bits 
8845   Salad 

는 내가 뭘 찾고 것은 하나 LABEL_ID 특정 TYPE (= 샐러드)이있는 경우, 같은 값으로 세 번째 표시 열을 설정한다는 것입니다. Type = Salad 인 경우 두 레코드 모두에 대해 IND = YES을 설정하십시오.

LABEL_ID  TYPE   IND 
1234   Salad   YES 
1234   Dressing  YES 
4455   Croutons  NO 
5889   SALAD   YES 
6574   Nuts   NO 
8845   Bacon Bits YES 
8845   Salad   YES 
+0

는 내가 "잘못된"대답을 삭제 누구든지 그렇게하지만 정확 이유에 대한 설명을 추가하지 마십시오 것이 좋습니다. 또한 의견 제시 자에게 - 잘못되었다고 말하면서 왜 잘못되었는지 말하지 마십시오. 그것은 나에게 잘 보였습니다. 왜 OP 문항에 CASE 문을 사용하는 것이 잘못된 것인지 알고 싶습니다. – rheitzman

+0

@rheitzman 'Type = Salad'가있는 행에 대해서만 '예'가 표시되므로 대답이 잘못되었습니다. 즉'1234, Dressing' 행에 'NO'가 표시됩니다. – user2989408

답변

2

이 방법이 유용 할 것입니다.

SELECT a.*, 
CASE WHEN EXISTS (SELECT LABEL_ID FROM Table b 
        WHERE a.Label_id = b.Label_id AND b.Type = 'Salad') THEN 'YES' 
    ELSE 'NO' 
END [IND] 
FROM Table a 
2
UPDATE t 
SET 
    IND = 'YES' 
FROM your_table as t 
INNER JOIN your_table as p on t.LABEL_ID = p.LABEL_ID 
WHERE p.TYPE = 'Salad' 
관련 문제