У меня возникли проблемы, связанные с написанием процедуры, включающей дополнительный фильтр для левого соединения.
У меня есть две таблицы: Issues и Customer_Location. Не все проблемы были связаны с местонахождением клиента. Так что я согласен с этим в качестве отправной точки:
SELECT
I.Issue_Number,
C.Customer_Location_Code
FROM Issues I
LEFT JOIN Customer_Location C
ON C.Customer_Location_Key = I.Customer_Location_Key
Issue_Number | Customer_Location_Code
1 | Chicago
2 | NULL
3 | Chicago
4 | New York
И это работает, это дает мне все проблемы. Но я хочу добавить необязательный параметр для кода местоположения клиента, который, если оставить пустым, вернул бы все 4 проблемы, но если задать значение 1 для Чикаго, вернутся только проблемы 1 и 3.
Я пробовал это
DECLARE @customer_location_key INT
SET @customer_location_key = 1
SELECT
I.Issue_Number,
C.Customer_Location_Code
FROM Issues I
LEFT JOIN Customer_Location C
ON C.Customer_Location_Key = I.Customer_Location_Key
AND C.Customer_Location_Key = @customer_location_key
Но я получаю следующие результаты
Issue_Number | Customer_Location_Code
1 | Chicago
2 | NULL
3 | Chicago
4 | NULL
По какой-то причине у меня сейчас пукнет мозг, и я просто не могу понять, что ДОЛЖНО быть чем-то довольно простым