次のスキーマがあります
Invoices
=================
invoice_number
account_id
invoice_amount
invoice_date
status ("Paid","Not Paid")
次の情報を含むすべての請求書を取得するクエリを作成しようとしています...
- 請求書番号
- 請求書の日付
- アカウントID
- 請求金額
- このアカウント ID の最後の支払い済み請求額 (この行の請求日より前)
最後のアイテム (前回の支払済み請求書の金額) に問題があります。これまでのところ...
select
inv2.invoice_number,
inv2.invoice_date,
inv2.account_id,
inv2.invoice_amount,
(
select * from (
select inv.invoice_amount
from invoices inv
where inv.account_id = inv2.account_id
and inv.status = 'PAID'
and inv.invoice_date < inv2.invoice_date
order by inv.invoice_date desc
)
where rownum <=1
) as last_paid_amount
from
invoices inv2
データセットのサイズが非常に高くつくため、相関サブクエリを使用しないようにこれをリファクタリングしようとしています。非相関サブクエリを使用するようにリファクタリングするにはどうすればよいですか。これは可能ですか?
ありがとうございました