Я думаю, что это будет проще, чтобы показать пример первым, а затем объяснить:саз с условием
SELECT P.ID,
(CASE WHEN PC.NewCostPrice IS NULL
THEN P.Cost ELSE MAX(PC.Date) PC.NewCostPrice
END)
FROM price AS P
LEFT OUTER JOIN priceChange as PC
ON P.ID = PC.ID
Таким образом, в примере, если NewCostPrice IS NULL, что означает, что не было изменение цены, то Я хочу нормальную стоимость (P.Cost). Однако, если бы произошло изменение цены, я хочу получить последнее (MAX (Date)) изменение цены. Я не уверен, как включить это в инструкцию CASE.
Я чувствую, что это можно сделать с помощью подзапроса и наличия предложения, но это не сработало, когда я попытался. Какие-либо предложения?
Спасибо!
ли 'ID' первичный ключ в указанных таблицах ? – ydoow