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");
The table displays the event_types (buy, sell) and the corresponing quantities per campaign.
Now, I want to run a query which checks the following:
a) event_date for event_type buy > event_date for event_type sell
b) quantity for event_type buy > quantity for event_type sell
The result should look like this:
campaign Check_Date Check_Quantity
C001 Error OK
C002 OK Error
C004 OK Error
I think I need to go with the CASE statement somehow like this:
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;