Я пытаюсь решить эту проблему, и я не уверен, что использование CASE WHEN
является правильным решением.
Я пытаюсь манипулировать данными.Если продукт равен A
, тогда цена должна быть 100, а не цена из таблицы, и я не уверен, как этого добиться.
CREATE TABLE Test
(
Product VARCHAR(250),
subproduct VARCHAR(250),
Orderdate DATETIME
);
INSERT INTO TEST (product, subproduct, orderdate)
VALUES ('A', 'blue', '2019/01/01'),
('B', 'orange','2019/01/11'),
('C', 'lemon', '2019/01/15'),
('D', 'lemon', '2019/01/20'),
('A', 'blue', '2019/12/31'),
('B', 'orange','2019/12/31'),
('C', 'lemon', '2019/12/15'),
('D', 'lemon', '2019/12/31');
CREATE TABLE PriceTest
(
Product VARCHAR(250),
Price NUMERIC(10,2),
Pricedate DATETIME
)
INSERT INTO PriceTest (product, price, pricedate)
VALUES ('A', 10.00,'2019/12/31'),
('B', 50.00,'2019/12/31'),
('C', 30.00,'2019/12/31'),
('D', 50.00,'2019/12/31'),
('A', 20.00,'2019/10/31'),
('B', 40.00,'2019/10/31'),
('C', 50.00,'2019/10/31'),
('D', 10.00,'2019/11/30');
Выбор запроса:
SELECT
t.product, t.subproduct, p.price, p.pricedate
FROM
test t
JOIN
pricetest p ON p.product = t.product
WHERE
p.pricedate = '12/31/2019'
ORDER BY
t.product
Текущие результаты:
product subproduct price pricedate
---------------------------------------
A blue 10 12/31/2019
A blue 10 12/31/2019
B orange 50 12/31/2019
B orange 50 12/31/2019
C lemon 30 12/31/2019
C lemon 30 12/31/2019
D lemon 50 12/31/2019
D lemon 50 12/31/2019
Желаемый результат: всякий раз, когда продукт = A, Цена должна быть = 100, в противном случае цена остается той же самой из таблицы цен для других.
product subproduct price pricedate
---------------------------------------
A blue 100 12/31/2019
A blue 100 12/31/2019
B orange 50 12/31/2019
B orange 50 12/31/2019
C lemon 30 12/31/2019
C lemon 30 12/31/2019
D lemon 50 12/31/2019
D lemon 50 12/31/2019