SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
create table users( id serial, name text ); insert into users(name) values('Вася'),('Петя'); create table bank_props( id serial, user_id int, bik text, inn text, kpp text, individual_guid text, period timestamp, active boolean ); insert into bank_props(user_id, bik, inn, kpp, individual_guid, period, active) values (1, '123', '123', '123', '123', now() - interval '1 day', true), (1, '123', '123', '123', '123', now() - interval '3 day', true), (1, '123', '123', '123', '123', now() - interval '2 day', false), (2, '124', '124', '124', '124', now() - interval '1 day', true), (2, '124', '124', '124', '124', now() - interval '3 day', true), (2, '124', '124', '124', '124', now() - interval '2 day', false); create table settlements( id serial, user_id int, individual_guid text, period timestamp, status text ); insert into settlements(user_id, individual_guid, period, status) values (1, '123', now() - interval '1 day', 'COMPLETED'), (1, '124', now() - interval '2 day', 'COMPLETED'), (1, '125', now() - interval '3 day', 'NONCOMPLETED'), (2, '126', now() - interval '1 day', 'COMPLETED'), (2, '127', now() - interval '4 day', 'COMPLETED'), (2, '128', now() - interval '5 day', 'NONCOMPLETED'); select users.name, bank_props.bik, bank_props.inn, bank_props.kpp, bank_props.individual_guid, settlements.period from users join (select max(period) as date, user_id from bank_props where active = true group by user_id) as t_bank on(users.id = t_bank.user_id) join bank_props on t_bank.user_id = bank_props.user_id and bank_props.period = t_bank.date join (select max(period) as date, user_id from settlements where status = 'COMPLETED' group by user_id) as t_settlements on(users.id = t_settlements.user_id) join settlements on t_settlements.user_id = settlements.user_id and settlements.period = t_settlements.date;
Stuck with a problem? Got Error? Ask ChatGPT!
Copy Clear