У меня есть приложение, которое я использую, собирает данные следующим образом
partial_lines = lines = self.env['account.move.line']
for line in self.move_id.line_id:
if line.account_id != self.account_id:
continue
if line.reconcile_id:
lines |= line.reconcile_id.line_id
elif line.reconcile_partial_id:
lines |= line.reconcile_partial_id.line_partial_ids
partial_lines += line
self.payment_ids = (lines - partial_lines).sorted()
Мне нужно воссоздать это в отчете posgre, чем означает, что я должен собирать все идентификаторы одним общим. Я понял, что потребуется рекурсия. Но моя последняя попытка не удалась, вот код ниже
WITH RECURSIVE tree AS (
SELECT id, move_id,date,credit,account_id,reconcile_id
FROM account_move_line WHERE reconcile_id IS NULL
UNION ALL
SELECT account_move_line.id, tree.move_id,account_move_line.date,account_move_line.credit,account_move_line.account_id,account_move_line.reconcile_id
FROM account_move_line, tree
WHERE account_move_line.reconcile_id = tree.id
)
SELECT * FROM tree WHERE move_id = 3941;