SELECT Gültigkeitszeitraum

jens_db

Neuer Benutzer
Beiträge
3
Hallo, ich habe ein Problem eine Datenstruktur historisiert abzubilden. Die Ursprungstabelle beinhaltet folgende Daten zu einem bestimmten Vertrag:

Key;gültig von;gültig bis;Preis;Bezeichnung
6375;01.07.2009;31.07.2012;45,00;Heizkosten
6375;01.08.2012;31.08.2013;40,50;Heizkosten
6375;01.09.2013;;84,00;Heizkosten
6375;01.07.2009;31.07.2012;65,00;Betriebskosten
6375;01.08.2012;31.12.2012;74,50;Betriebskosten
6375;01.01.2013;31.01.2013;74,53;Betriebskosten
6375;01.02.2013;;74,50;Betriebskosten
6375;01.07.2009;;240,00;Einzelmiete -Wohnungen-

Die Gesamtmiete eines Vertrages setzt sich aus den Bestandteilen Einzelmiete, Betriebskosten und Heizkosten zusammen. Ich habe kein Problem die aktuelle bzw. die älteste Miete abzufragen. Bei einer historisierten Auswertung benötige ich allerdings die gesamte Mietstruktur über die unterschiedlichen Gültigkeitszeiträume.
Das Ergebnis sollte folgendermaßen aussehen:

Key;gültig von;gültig bis;Nettokaltmiete;Betriebskosten;Heizkosten
6375;01.07.2009;31.07.2012;240,00;65,00;45,00
6375;01.08.2012;31.12.2014;240,00;74,50;40,50
6375;01.01.2013;31.01.2013;240,00;74,53;40,50
6375;01.02.2013;31.08.2013;240,00;74,50;40,50
6375;01.09.2013;;240,00;74,50;84,00
Ich werde mit den unterschiedlichen Gültigkeitszeiträumen nicht so richtig fertig.

Danke im voraus für die Hilfe
VG Jens
 
Werbung:
Ich habe kein Problem aus den Zeilen Spalten zu machen. Hier könnte man auch die Summe aller Mietbestandteile abbilden.

Ich bekomme die unterschiedlichen Gültigkeitszeiträume nicht vernünftig miteinander verknüpft. z.B.:
- Betriebskosten (01.01.2013 - 31.01.2013) + Einzelmiete (01.07.2009 - heute) + Heizkosten (01.08.2012 - 31.08.2013)
 
Ich habe kein Problem aus den Zeilen Spalten zu machen. Hier könnte man auch die Summe aller Mietbestandteile abbilden.

Ich bekomme die unterschiedlichen Gültigkeitszeiträume nicht vernünftig miteinander verknüpft. z.B.:
- Betriebskosten (01.01.2013 - 31.01.2013) + Einzelmiete (01.07.2009 - heute) + Heizkosten (01.08.2012 - 31.08.2013)

Ah so. Ja, das ist nicht so ganz einfach. Ich weiß nicht, was Oraggle da an Funktionen bietet. PostgreSQL hat seit zig Versionen einen OVERLAPS - Operator, mit dem man da prüfen kann - und seit 9.3 auch RANGE-Typen, die das noch mehr vereinfachen. OVERLAPS ist aber IMHO SQL-Standard, könnte also auch Oraggle haben.
 
1. Inwiefern sollen die Zeiträume verknüpft werden ? Sobald sich zwei Zeiträume berühren?
2. Was passiert wenn eine Einzelmiete in zwei Betriebskostenzeiträumen auftaucht ?
 
Werbung:
1. Inwiefern sollen die Zeiträume verknüpft werden ? Sobald sich zwei Zeiträume berühren?
2. Was passiert wenn eine Einzelmiete in zwei Betriebskostenzeiträumen auftaucht ?

zu 1. Die einzelnen Mietkosten sollen dann verknüpft werden wenn sie über einen gleichen Gültigkeitszeitraum verfügen.
Hier muss ich mir sozusagen den kleinsten gemeinsamen Gültigkeitszeitraum heraussuchen. In meinem Beispiel wären das also die Betriebskosten vom 01.01.2013 - 31.01.2013. Die Einzelmiete (01.07.2009 - heute) und die Heizkosten (01.08.2012 - 31.08.2012) fallen auch in diesen Zeitraum. Die Gültigkeitsdauer des ganzen Datensatzes ist also 01.01.2013 - 31.01.2013 mit den entsprechend anfallenden Mietbestandteilen.

zu 2. Da die Einzelmiete in diesem Fall für den gesamten Zeitraum gültig ist, muss diese bei allen Betriebs- bzw. Heizkostenzeiträumen auftauchen.
 
Zurück
Oben