Как присоединиться к рекурсивной рекурсивной таблице Postgres Pyton - PullRequest
0 голосов
/ 18 июня 2020

У меня есть приложение, которое я использую, собирает данные следующим образом

    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;
...