Есть таблица А: ID, NAME (Список людей) Есть таблица Б: ID, PERIOD, ID_A, PAYMENT ID - Уникален в каждой таблице. PERIOD - не уникален. Строка в формате XXXX.YY (XXXX - Год, YY - месяц). Это, условно, период оплаты. (Люди платят раз в месяц. В идеале) ID_A - соответствует ID в таблице A, однако один ID_A имеет несколько строк с разным (или нет) PERIOD. PAYMENT - Float число Мне нужно сделать запрос и получить последние оплаты каждого человека. В виде: A.ID , B.PERIOD, B.PAYMENT
with b as (select b.*,row_number()over(partition by id order by period desc)rn from "Б" b) select a.id, period, payment from "А" a left join b on a.id = b.id and b.rn=1
SELECT ta.id ,tb.period,tb.payment FROM table_b tb JOIN (SELECT MAX(id) AS id,id_a FROM table_b GROUP BY id_a) AS gt ON tb.id = gt.id JOIN table_a ta ON ta.id = tb.id _a
Есть таблица Б: ID, PERIOD, ID_A, PAYMENT
ID - Уникален в каждой таблице.
PERIOD - не уникален. Строка в формате XXXX.YY (XXXX - Год, YY - месяц). Это, условно, период оплаты. (Люди платят раз в месяц. В идеале)
ID_A - соответствует ID в таблице A, однако один ID_A имеет несколько строк с разным (или нет) PERIOD.
PAYMENT - Float число
Мне нужно сделать запрос и получить последние оплаты каждого человека. В виде:
A.ID , B.PERIOD, B.PAYMENT