2013-02-13 3 views
1
ID DEPT 
user1 A 
user1 B 
user1 C 
user2 A 
user2 B 
user3 A 
user4 A 
user4 B 
user4 D 
user4 E 

Я хочу взять таблицу, такую ​​как выше, посмотреть, какие пользователи имеют деление A, но не C, и вставить C или наоборот (Have C, а не A, вставить новую строку с A)Вставить строку с несколькими ключами

В приведенной выше таблице User4 будет идентифицирован как имеющий A, но не C, поэтому будет вставлена ​​новая строка с user4 и элементом C.

+0

, пожалуйста, используйте тег кода, чтобы разумно отформатировать ваши примеры кода/данных для ссылок. – amphibient

+2

В чем конкретно ваш вопрос? –

+0

Каковы столбцы в таблице? от того, что вы отправили, я не могу сказать, какие столбцы и какие значения – amphibient

ответ

0
INSERT INTO tablename(Id, Dept) 
SELECT COALESCE(A.ID, C.ID) 
, CASE 
    WHEN A.ID IS NULL THEN 'A' 
WHEN C.ID IS NULL THEN 'C' 
END 
FROM 
    (select id 
    from tableName 
    WHERE Dept = 'A') A 
FULL OUTER JOIN 
    (select id 
    from tableName 
    WHERE Dept = 'C') C 
    ON A.Id = C.Id 
WHERE 
    A.Id IS NULL OR C.Id IS NULL