У меня проблемы с определением оператора Transact-SQL (SQL Server) для следующей ситуации: Есть 2 таблицы 1 и 2, каждая из которых имеет идентификатор (первичный ключ) и 3 атрибута A, B, C. ВВ Таблице 1 все атрибуты являются обязательными, в Таблице 2 обязательным является только А.
Это означает, что в Таблице 2 представлены более или менее конкретные записи.
Я хочу объединить эти две таблицы.найдя наиболее конкретную запись таблицы 2 для записей таблицы 1
Я надеюсь, что следующая картина является понятным описанием проблемы:
IЯ пытался объединить, следуя инструкциям case, но всегда получал синтаксические ошибки.
Чтобы указать проблему: Мой первый подход состоял в том, чтобы определить выражение объединения с помощью ON Case, как это, что, конечно, не работает, но:
SELECT * FROM Table T1
JOIN Table T2 ON CASE
WHEN T1.A = T2.A AND T1.B=T2.B AND T1.C=T2.C
THEN T1.A = T2.A AND T1.B=T2.B AND T1.C=T2.C
WHEN T1.A = T2.A AND T1.B=T2.B AND T1.C!=T2.C
THEN T1.A = T2.A AND T1.B=T2.B
WHEN T1.A = T2.A AND T1.B!=T2.B AND T1.C!=T2.C
THEN T1.A = T2.A
ELSE 0
Поэтому мне нужен только подход, а не целое решение для него.