--ΠΠ°Π΄Π°ΡΠ° 1
--ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΠΈΠ΅ΠΉ ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅
CREATE TABLE Clients
( Ow_id NUMBER,
Birth_dt DATE,
Email_flg NUMBER,
Mobile_app_flg NUMBER
);
--Π½Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π΅Π΅ Π΄Π°Π½ΡΠΌΠΈ
INSERT ALL
INTO Clients (Ow_id, Birth_dt, Email_flg, Mobile_app_flg) VALUES (123, '17.06.2022', 0, 1)
INTO Clients (Ow_id, Birth_dt, Email_flg, Mobile_app_flg) VALUES (124, '25.06.2022', 1, 1)
INTO Clients (Ow_id, Birth_dt, Email_flg, Mobile_app_flg) VALUES (142, '16.06.2022', 1, 1)
INTO Clients (Ow_id, Birth_dt, Email_flg, Mobile_app_flg) VALUES (143, '17.06.2022', 0, 1)
INTO Clients (Ow_id, Birth_dt, Email_flg, Mobile_app_flg) VALUES (144, '17.06.2022', 0, 0)
SELECT * FROM Clients;
--ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΠΈΠ΅ΠΉ ΠΎ ΠΏΠ°ΡΡΠ½Π΅ΡΠ°Ρ
CREATE TABLE Transactions
( Ow_id NUMBER,
Partner_id NUMBER,
POS NUMBER,
CASH_DT DATE
);
--Π½Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π΅Π΅ Π΄Π°Π½ΡΠΌΠΈ
INSERT ALL
INTO Transactions (Ow_id, Partner_id, POS, CASH_DT) VALUES (123, 5555, 1001, '17.06.2022')
INTO Transactions (Ow_id, Partner_id, POS, CASH_DT) VALUES (123, 1111, 200, '25.06.2022')
INTO Transactions (Ow_id, Partner_id, POS, CASH_DT) VALUES (123, 1111, 500, '16.06.2022')
INTO Transactions (Ow_id, Partner_id, POS, CASH_DT) VALUES (123, 5555, 800, '17.06.2022')
INTO Transactions (Ow_id, Partner_id, POS, CASH_DT) VALUES (142, 1111, 600, '17.06.2022')
INTO Transactions (Ow_id, Partner_id, POS, CASH_DT) VALUES (142, 5555, 700, '29.06.2009')
SELECT * FROM Transactions;
--ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠΊΡΠΏΠΎΠΊ ΠΏΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡ
with sum_pos_per_clients as
(select C.Ow_id, sum(t.POS) as sum_pos
FROM Clients C
LEFT JOIN Transactions T ON T.Ow_id=C.Ow_id
where CASH_DT>current_date()-30
group by C.Ow_id)
SELECT C.Ow_id,
--Π΄Π΅Π»ΠΈΠΌ Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ
CASE
WHEN s.sum_pos>1000 then 'ΠΠ»ΠΈΠ΅Π½Ρ ΡΠΎΠ²Π΅ΡΡΠ°Π» ΠΏΠΎΠΊΡΠΏΠΊΠΈ Ρ ΠΏΠ°ΡΡΠ½Π΅ΡΠ° Π½Π° ΡΡΠΌΠΌΡ Π±ΠΎΠ»Π΅Π΅ 1000 Ρ.'
WHEN s.sum_pos<=1000 then 'ΠΠ»ΠΈΠ΅Π½Ρ ΡΠΎΠ²Π΅ΡΡΠ°Π» ΠΏΠΎΠΊΡΠΏΠΊΠΈ Ρ ΠΏΠ°ΡΡΠ½Π΅ΡΠ° Π½Π° ΡΡΠΌΠΌΡ Π΄ΠΎ 1000 Ρ.'
ELSE 'ΠΠ»ΠΈΠ΅Π½Ρ Π½Π΅ ΡΠΎΠ²Π΅ΡΡΠ°Π» ΠΏΠΎΠΊΡΠΏΠΊΠΈ Ρ ΠΏΠ°ΡΡΠ½Π΅ΡΠ°.'
END as SEG
FROM Clients C
LEFT JOIN sum_pos_per_clients s ON s.Ow_id=C.Ow_id;