簡體   English   中英

SQL - 將一個查詢的結果用於第二個查詢

[英]SQL - Use result of one query for second query

假設我有一張桌子付款。

ID | Amount |    Date    | Reference
 1 |   10   | 2020-09-01 |  911

然后我有一個表registered_pa​​yments。

ID | Amount |    Date    | Note      | Bank Reference
 1 |   10   | 2020-09-01 |  911aa    | 000001
 2 |   10   | 2020-09-05 |  123vv    | 000002
 3 |   10   | 2020-09-07 |  555ss    | 000003

然后我們有表bank_payments。

ID | Amount |    Date    | Bank Reference | Bank ID
 1 |   10   | 2020-09-01 | 000001         | 44
 2 |   10   | 2020-09-05 | 000002         | 33
 3 |   10   | 2020-09-07 | 000003         | 22

然后我有一個查詢:

WITH cte AS(
   SELECT amount, 
          date, 
          reference 
   FROM 
          payments 
   WHERE 
          ID = 1
)
SELECT
   *
FROM
   registered_payments
WHERE
   amount = (SELECT amount FROM tmp)
   AND date = (SELECT date FROM tmp)
   AND note ilike '%' || (SELECT amount FROM tmp) || '%';

我需要顯示這個查詢的結果(不是問題)。

但是我可以在另一個查詢中使用結果(總是 1 條記錄)中的銀行參考並以某種方式在 bank_payments 中搜索付款嗎?

我只有閱讀權限。 無法創建任何函數或表。 使用了 PSQL。

感謝您的幫助。

如果我正確地跟隨您,您可以將邏輯展平為簡單的連接:

select ...      -- enumerate the columns you want here
from payments p
inner join registered_payments rp 
    on  rp.amount = p.amount
    and rp.date = p.date
    and rp.note ilike '%' || p.reference || '%'
inner join bank_payments bp
    on  bp.amount = rp.amount
    and bp.date = rp.date
    and bp.bank_reference = rp.bank_reference

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM