Zeitraum in verschiedenen Zeiträumen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Zeitraum in verschiedenen Zeiträumen

Beitrag von Barlee »

Hallo mablung,
Was ich gefunden habe (viewtopic.php?f=8&t=16717&p=69864&hilit=zeitraum#p69864) half mir nicht weiter; obwohl der Ansatz einleuchtend war.
Woran genau scheitert es? Um DATEDIFF() wirst Du nicht herum kommen.
Versuche einmal, das in folgender Art umzusetzen:

Code: Alles auswählen

...
CASE 
WHEN "Buchungsdatum" BETWEEN "Tarifzeitraum_Start" AND "Tarifzeitraum_Ende" 
THEN DATEDIFF('dd', "Buchungsdatum", "Tarifzeitraum_Start")  
ELSE 0 END AS "Tage_in_Tarifzeitraum"
...
"Buchungsdatum" entspricht dabei dem Enddatum des Buchungszeitraums.

Gruß Barlee
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Zeitraum in verschiedenen Zeiträumen

Beitrag von Barlee »

Hallo
einmal grundsätzlich: wie wird die CASE - Funktion in die Abfrage integriert?
Durchforste einmal das Base-Forum nach dem Schlüsselwort CASE und Du wirst hierfür einige Beispiele finden. Anhand von praktischen Beispielen findest Du am besten den Einstieg.
In Deinem konkreten Beispiel würde ich sie hinter der Zeile DATEDIFF( 'dd', "Beginn", "Ende" ) + 1 AS "GesamtTage" einbauen
!SQL direkt ausführen muss aktiviert sein!
Ich dachte, in Base (mit HSQLDB) gibt's nur CASEWHEN? Kann man das verschachteln? - oder kann beliebiger Standard-SQL - Code benutzt werden? Weisst du da eine gute Seite im Netz zum Einstieg?
Die folgenden Seiten geben einen guten Überblick über die Funktionen und deren Verwendung.
http://hsqldb.org/web/hsqlDocsFrame.html
http://wiki.services.openoffice.org/wik ... Procedures

Gruß Barlee
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Zeitraum in verschiedenen Zeiträumen

Beitrag von Barlee »

Hallo mablung,
Sieht der Code auf Anhieb annehmbar aus oder ist irgendwas zu umstaendlich
nein ist nicht zu umständlich, sieht gut aus
Und: Sollten die Spalten immer eindeutig bezeichnet werden, also
"Vermietung"."ID" statt 'nur' "Saisonzeiten", oder ist das egal und hoechstens für die Übersicht wünschenswert?
Es ist nicht immer egal. Verwendest Du z.B. mehrere Tabellen mit gleichen Spaltenbezeichnern, dann musst Du auf die zu verwendende Tabelle verweisen. Darüberhinaus ist eine Abfrage leichter nachzuvollziehen, wenn man mit Tabellen-Aliasen arbeitet. Gerade bei der Entwicklung komplexer Abfragen erhöht das die Übersicht.
inwieweit jetzt "Standard"-SQL verwendet werden kann und obs das ueberhaupt gibt.
Ja, es gibt einen Standard. Siehe http://de.wikipedia.org/wiki/SQL
http://hsqldb.org/ ("supports a rich subset of ANSI-92 SQL (BNF tree format) plus SQL 99 and 2003 enhancements.")
Soll ich mir einfach irgendein Buch in Richtung "Datenbanken mit SQL" (falls es sowas gibt) durchlesen? Ich blättere bei sowas immer lieber als mich im Netz durchzuhangeln.
Du machst sicherlich nichts verkehrt, wenn Du Dir ein Buch über SQL zulegst. Installiere Dir dazu z.B. mySQL und gehe die Beispiele in der Praxis durch.

Viel Erfolg!
Gruß Barlee
Antworten