:私は必要なもの使用前の行の値MS SQLの「XMLパスの」内
TABLE A (CUSTOMER_LOAN):
=============================
CUSTOMER_ID TOTAL_LOAN_AMOUNT
XXX 100,000.00
YYY 200,000.00
TABLE B (SCHEDULE):
=========================================
CUSTOMER_ID SCHEDULE_DATE SCHEDULE_AMOUNT
XXX 20170102 30,000
XXX 20170302 10,000
XXX 20170602 15,000
YYY 20170203 50,000
YYY 20170403 100,000
YYY 20170703 30,000
は、次のような出力を得ることです:
EXPECTED REPORT OUTPUT :
=============================
CUSTOMER_ID SCHEDULE_DATES SCHEDULE_PRINCIPAL
XXX 20170102/20170302/20170602 70,000/60,000/45,000
YYY 20170203/20170403/20170703 150,000/50,000/20,000
SCHEDULE_PRINCIPALがあります(優秀なプリンシパル - SCHEDULE_AMOUNT)によって計算されます。顧客XXXため すなわち、(7万=10万 - 3万)/(60,000 =7万 - 10,000)/(45,000 = 60,000 - 15,000)
以下は私のクエリです:
SELECT A.CUSTOMER_ID
, STUFF((SELECT '/' + SCHEDULE_DATE FROM SCHEDULE B
WHERE B.CUSTOMER_ID = A.CUSTOMER_ID
FOR XML PATH('')), 1, 1, '') AS SCHEDULE_DATES
, STUFF((SELECT '/' + (A.TOTAL_LOAN_AMOUNT - CAST(B.SCHEDULE_AMOUNT AS MONEY)) FROM SCHEDULE B
WHERE B.CUSTOMER_ID = A.CUSTOMER_ID
FOR XML PATH('')), 1, 1, '') AS SCHEDULE_PRINCIPAL
FROM CUSTOMER_LOAN A
あなたが見ることができるように、 TOTAL_LOAN_AMOUNTが一定で、次の行に計算(A.TOTAL_LOAN_AMOUNT - CAST(B.SCHEDULE_AMOUNT AS MONEY))が蓄積されていないため、SCHEDULE_PRINCIPALが正しくありませんでした。
予想されるレポートのように結果を出力できる計算方法はありますか?私はSQL Server 2012を使用しています。どんな助力も高く評価されます。
申し訳ありませんが、私はクエリを更新しました。 B.SCHEDULE_AMOUNTはCASTでMONEYにする必要があります。次に、私はあなたのクエリを使用して、システムは、次のエラーを返しました:RANGEウィンドウフレームのORDER BYリストは、LOB型の式を含むことはできません。 – TinySimonH
私のクエリは更新されましたが、日付をvarchar(max)カラムに保存しないでください –
ありがとうございました!あなたの質問は私の問題を解決しました。 – TinySimonH