以下は、私のテーブルとクエリを見つけることができます。頻度の列に基づいて開始日から終了日までの結果のリストを取得
SELECT contract.number
,contract.start_date
,contract.end_date
,contract_details.payment_frequency
,contract_details.amount
FROM contract
JOIN contract_details
ON contract.id = contract_details.contract_id
WHERE contract.status = 'active'
number start_date end_date payment_frequency amount
1000 20.02.2015 20.02.2019 1 260.78
1001 20.02.2015 20.06.2016 12 22.32
1002 15.03.2015 15.03.2059 1 144.00
1003 23.02.2015 23.02.2058 1 300.00
1004 24.02.2015 24.02.2063 1 250.55
1 = yearly payment
12 = monthly payment
Desired Output:
number start_date end_date due_date payment_frequency amount
1000 20.02.2015 20.02.2019 20.02.2015 1 260.78
1000 20.02.2015 20.02.2019 20.02.2016 1 260.78
1000 20.02.2015 20.02.2019 20.02.2017 1 260.78
1000 20.02.2015 20.02.2019 20.02.2018 1 260.78
1001 20.02.2015 20.06.2016 20.02.2015 12 22.32
1001 20.02.2015 20.06.2016 20.03.2015 12 22.32
1001 20.02.2015 20.06.2016 20.04.2015 12 22.32
1001 20.02.2015 20.06.2016 20.05.2015 12 22.32
and so on
DUE_DATEはEND_DATEに達するまで、あなたは私がpayment_frequencyに基づいて、各出現についての結果を取得したい見ることができるように(または1ヶ月/年その前に)。
これまでのところ私はいくつかのことを試みましたが、私が望んでいた結果は何も得られていませんでした。 -
だろうが"支払いの総数"の列は良いでしょうか?それは確かによりユニークな形式でデータを保持するでしょう。 – scsimon
私はいくつかの(または現在の)日付に基づいて各番号の次の支払いを得るためにクエリを書くことは可能だと思いますが、すべての支払いとちょうどクエリを使用して譲歩を得ることは不可能です。 – maraca
カーソルをテーブルに挿入してから、テーブルから選択して実行することもできます。 'payment_frequency = 1'ならば各行に行き、' due_date =終了日 'まで' start_date'/'calculated due_date'から年を足してください。その後、毎月の頻度で同じことをします。 – Doolius