Hilfe bei einer Wenn-Logik

ny_unity

SQL-Guru
Beiträge
176
Hallo Leute,

komme gerade nicht weiter, mir fehlen Ansätze bei einer verschachtelten Wenn-Logik, vielleicht könnt ihr mir helfen:

IDt1.DATUMVON t1.DATUMBIS
1 16.12.2013 02.03.2014
1 03.03.2014 31.10.2014

t2.DTVON t2.DTBIS t2.Preis
01.11.2012 31.12.2013 9,00 €
01.01.2014 null 10,00 €

ID t3.BZVON t3.BZBIS t3.Preis
1 16.12.2013 31.12.2013 2,00 €
1 01.01.2014 14.03.2014 1,00 €

t4.ABRECHDATUM
28.02.2014


Ausgabe:
ID VON BIS t3.PREIS t2.PREIS
1 16.12.2013 31.12.2013 2,00 € 9,00 €
1 01.01.2014 28.02.2014 1,00 € 10,00 €
1 01.03.2014 14.03.2014 1,00 € 10,00 €
1 15.03.2014 31.12.2014 1,00 € 10,00 €

Habt ihr einen Lösungsansatz? :)
sorry wegen optik, lies sich nicht besser darstellen

Danke, Erik
 
Werbung:
Die Logik nachzuvollziehen fällt mir etwas schwer. Hättest auch beschreibenden Text, den du hier posten könntest? Da sollte es mit der Darstellung funktionieren ;-)
 
So, ich hab mir überlegt, so viele Infos sind gar nicht nötig, ich versuch mein Problem mal wie folgt darzustellen:
2332ef87-dc93-4cde-9661-6fbe110c8280

ea05110c-56c8-461b-8069-5c272ad71dd2

Wie kann ich jetzt einen neuen View so erstellen, dass die Datumsangaben aufeinander aufbauen, also:
25.07.2013 - 04.09.2013 - 17,80
05.09.2013 - 24.10.2013 - 17,80 + 1,10

jetzt besser zu verstehen? :)

Danke

Erik
 
aus den beiden Bildern soll folgendes entstehen:

Hilfe3.jpg
So, habs im Paint jetzt schöner dargestellt :)

Komm ich mit meiner Erklärung jetzt besser an? Ich weiß nicht wie ich es sonst noch machen soll...
 
aus den beiden Bildern soll folgendes entstehen:


So, habs im Paint jetzt schöner dargestellt :)

Komm ich mit meiner Erklärung jetzt besser an? Ich weiß nicht wie ich es sonst noch machen soll...

Bilder haben den Nachteil, daß man da nich Coy&Paste anwenden kann. Schon mal FAIL.

Ich versuch es zu verstehen, aber so ganz logisch sind Deine Beispiele nicht. Bis auf die letzten 2 Zeilen komme ich aber auf Dein Resultat.

Achtung: wie immer bei mir wird gnadenlos PostgreSQL verwendet!

Code:
test=*# select * from t1 order by 1;
  zeitraum  | preis
-------------------------+-------
 [2013-07-25,2013-12-30) |  17.8
 [2014-01-03,2014-01-07) |  18.9
(2 rows)

Time: 0,222 ms
test=*# select * from t2 order by 1;
  zeitraum  | preis
-------------------------+-------
 [2013-09-25,2013-10-24) |  1.1
 [2013-10-25,2013-10-26) |  1.61
 [2013-11-04,2013-12-23) |  1.9
 [2013-12-30,2014-01-10) |  2.7
(4 rows)

Time: 0,260 ms
test=*# select * from t1 union all select zeitraum, p1+p2 from (select zeitraum, preis as p1, (select preis from t1 where t2.zeitraum && t1.zeitraum) p2 from t2) foo order by 1;
  zeitraum  | preis
-------------------------+-------
 [2013-07-25,2013-12-30) |  17.8
 [2013-09-25,2013-10-24) |  18.9
 [2013-10-25,2013-10-26) | 19.41
 [2013-11-04,2013-12-23) |  19.7
 [2013-12-30,2014-01-10) |  21.6
 [2014-01-03,2014-01-07) |  18.9
(6 rows)
 
Werbung:
Zurück
Oben