DB Fiddle
CREATE TABLE sales (
campaign VARCHAR(255),
event_type VARCHAR(255),
event_date VARCHAR(255),
quantity VARCHAR(255)
);
INSERT INTO sales
(campaign, event_type, event_date, quantity)
VALUES
("C001", "buy", "2019-05-08", "500"),
("C001", "sale", "2019-04-20", "400"),
("C002", "buy", "2019-06-07", "800"),
("C002", "sale", "2019-06-15", "900"),
("C003", "buy", "2020-02-23", "700"),
("C003", "sale", "2020-03-17", "300"),
("C004", "buy", "2020-04-05", "200"),
("C004", "sale", "2020-03-17", "600");
В таблице отображаются event_types (buy, sell)
и соответствующие quantities
за campaign
.
Теперь я хочу запустить query
, который проверяет следующее:
a) event_date
для event_type
buy
> event_date
для event_type
sell
b) quantity
для event_type
buy
> quantity
для event_type
sell
Результат должен выглядеть следующим образом:
campaign Check_Date Check_Quantity
C001 Error OK
C002 OK Error
C004 OK Error
Я думаю, мне нужно go с оператором CASE
, примерно так:
SELECT
campaign,
(CASE WHEN event_date of buy > event_date of sale THEN "Error" ELSE "OK") AS Check_Date,
(CASE WHEN quantity of buy > quantity of sale THEN "Error" ELSE "OK") AS Check_Quantity
quantity
FROM sales;