Вы можете получить ожидаемый результат следующим образом:
SELECT Cost.ProductId,
Cost.CustomerCost
FROM CUSTOMERCOST Cost
INNER JOIN PRODUCTS prod ON Cost.productId = prod.productId
WHERE prod.productId=4
AND Cost.Customer_Id = 2717
Однако, если вы хотите, чтобы идентификатор клиента передавался как NULL
, вам придется изменить последнюю строку на AND Cost.Customer_Id IS NULL
,Чтобы сделать это динамически, вам нужно будет использовать переменные и сгенерировать запрос на основе ввода.
Проблема в исходном запросе, который вы опубликовали, заключается в том, что вы использовали псевдоним custCost
, которыйотсутствует в запросе.
РЕДАКТИРОВАТЬ : На самом деле, вам даже не нужно объединение.Кажется, что в таблице CUSTOMERCOST
указаны идентификаторы клиента и продукта.
Вы можете просто:
SELECT
Cost.ProductId, Cost.CustomerCost
FROM
CUSTOMERCOST Cost
WHERE
Cost.Customer_Id = 2717
AND Cost.productId = 4