Unten finden Sie meine Tabelle und die Abfrage.Get Liste mit Ergebnissen von Anfang bis Ende basierend auf Frequenz Spalte
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
Wie man sehen kann ich ein Ergebnis für jedes Vorkommen auf dem payment_frequency Basis erhalten möge, bis die DUE_DATE die end_date erreicht (oder 1 Monat/Jahr davor).
Bisher habe ich ein paar Dinge ausprobiert, aber nichts hat mir die Ergebnisse gebracht, auf die ich gehofft hatte.
Offensichtlich i mit Ihren genauen Anforderungen nicht vertraut bin, aber würde eine Spalte "Gesamtzahl der Zahlungen" ist besser? Es würde sicherlich die Daten in einem einzigartigen Format halten. – scsimon
Ich denke, es ist möglich, eine Abfrage zu schreiben, um die nächste Zahlung für jede Nummer basierend auf einem (oder dem aktuellen) Datum zu bekommen, aber alle Zahlungen und Duedaten mit nur einer Abfrage scheint mir unmöglich. – maraca
Konnte es wahrscheinlich mit einem Cursor in eine Tabelle einfügen und dann aus der Tabelle auswählen. Gehe durch jede Zeile, wenn 'payment_frequency = 1', dann füge ein Jahr vom' start_date'/'berechneten Fälligkeitsdatum' bis zum 'Fälligkeitsdatum = Enddatum' hinzu. Dann mache dasselbe mit der monatlichen Häufigkeit. – Doolius