うまくいけば、これは SQL Server の経験が豊富な人にとっては十分に簡単です。
アカウントでアクションが発生するたびに更新される顧客ローン活動データのテーブルがあります。たとえば、制限が引き上げられた場合、新しい制限で新しいレコードが作成されます。以前の制限を差し引いた新しい制限が活動量である活動のリストを作成できるようにしたいと考えています。
現時点では次のものがありますが、以前のレコードにアクセスする方法を見つけるのに苦労しています。
SELECT
CUSTOMER
,LEDGER
,ACCOUNT
,H.AMOUNT - COALESCE(X.AMOUNT, 0)
FROM
dbo.ACTIVITY H WITH (NOLOCK)
LEFT OUTER JOIN
(SELECT
CUSTOMER
,LEDGER
,ACCOUNT
,ACTIVITY_DATE
,AMOUNT
,ROW_NUMBER() OVER (PARTITION BY CUSTOMER, LEDGER, ACCOUNT ORDER BY ACTIVITY_DATE ASC) AS ROW_NUMBER
FROM
dbo.ACTIVITY WITH (NOLOCK)) X ON H.CUSTOMER = X.CUSTOMER
AND H.LEDGER = X.LEDGER
AND H.ACCOUNT = X.ACCOUNT
基本的にx.amount
は前の記録の場合のみ引き算したいのですが、何日目か分からない場合の引き方がわかりません。
私は私を助けるだろうと思っRow_Number()
たが、私はまだ少し困惑している.
皆様からのご連絡をお待ちしております:)
乾杯