Zeitraum in verschiedenen Zeiträumen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Zeitraum in verschiedenen Zeiträumen

Re: Zeitraum in verschiedenen Zeiträumen

von Barlee » Mi, 06.05.2009 20:15

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

Re: Zeitraum in verschiedenen Zeiträumen

von Barlee » So, 03.05.2009 13:09

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

Re: Zeitraum in verschiedenen Zeiträumen

von Barlee » Sa, 02.05.2009 23:03

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

Nach oben