Я постараюсь, чтобы мой вопрос звучал как можно более запутанно.Я заранее прошу прощения за любые ошибки формулировки, так как я пытаюсь сформулировать свой вопрос как можно лучше:
Используя T-SQL, мне нужно написать оператор соединения, который получит мне все результаты, которые совпадают в таблицеA и таблица B
AND (!)
другой оператор соединения (или продолжение первого соединения), который возвращает все результаты из таблицы A, которые не имеют совпадения в таблице B,НО в этом втором наборе результатов мне нужно, чтобы один из столбцов был установлен в «N / A», чтобы идентифицировать записи, у которых не было совпадения.
Другими словами, мне нужно что-то, что вернуло бы всев таблице A, но также идентифицирует строки, которые не были сопоставлены в B. Эта информация затем используется в отчете.
Вот что у меня есть:
У меня есть перваячасть сделана:
LEFT OUTER JOIN dbo.chart B
ON B.UserName = A.user_name
Это дает мне совпадающие записи и только совпадающие записи
Я попытался добавить это второе соединение:
JOIN dbo.chart
ON NOT EXISTS (select * from B.UserName = A.user_name)
Надеюсь, что получит менянесоответствующие записи (я планировалЗатем используйте REPLACE в интересующем столбце, чтобы пометить этот столбец «N / A»), но с моим синтаксом что-то явно не так, поскольку он генерирует исключения.
Мой вопрос заключается в том, что мне нужно изменить напринеси мне результаты, которые тебе нужны.Я знаю, что мне нужно по крайней мере одно соединение, так как у меня есть другая часть запроса для работы.Я просто не знаю, нужно ли мне, чтобы одно объединение возвращало оба набора данных, которые мне действительно нужны, для второго - только для несоответствующих записей.
Надеюсь, это не слишком запутало.Любая помощь будет принята с благодарностью.
Спасибо!
Обновление: я просто хотел бы подчеркнуть, что причина, по которой я решил использовать второе объединение вместо получения всех результатов воднажды, потому что мне нужно правильно идентифицировать и пометить те строки, которые не были сопоставлены во всем, что я получаю.