Seite 1 von 1
Abfrageproblem Kriterium: Datum(Tag)=Montag
Verfasst: Fr, 18.01.2008 09:07
von seballa
Mein Problem ist vereinfacht folgendes:
Meine Tabelle hat 2Felder: Datum und Anzahl
Ich möchte in einer Abfrage die Summe aller Felder "Anzahl" ausgeben an denen das Datum z.B. im Januar 2007 liegt und ein Montag ist.
Also etwa so:(natürlich funktioniert das so nicht)
Code: Alles auswählen
SELECT SUM( "Anzahl" ) FROM "Tabelle"
WHERE Monat(Tabelle.Datum) = JANUAR AND
Jahr(Tabelle.Datum) = 2007 AND
TAG(Tabelle.Datum) =Monatg )
Vielen Dank
Seballa
Re: Abfrageproblem Kriterium: Datum(Tag)=Montag
Verfasst: Fr, 18.01.2008 09:43
von komma4
Das sollte genau so funktionieren.
Mein Standard-Satz: die Möglichkeiten von SQL sind abhängig von der verwendeten Datenbank.
Meine Glaskugel sagt mir "
seballa nimmt HSQLDB", deshalb habe ich bei denen in der
Dokumentation nachgeschaut:
Code: Alles auswählen
SELECT SUM( "Anzahl" ) FROM "Tabelle"
WHERE MONTHNAME( "Datum" ) = 'January' AND
YEAR( "Datum" ) = '2007' AND
DAYNAME( "Datum" ) = 'Monday' )
Anmerkung:
die Funktionen geben englische Zeichenketten zurück - oder nummerische Werte, wie im Falle
MONTH( "Datum" ). Ob Du nummerisch oder per Zeichenvergleich abfragst - bleibt Dir überlassen. Ersteres hat halt den Vorteil, dass bspw. ein "Halbjahr" einfach durch
< 7 ermittelt werden kann.
Kommst Du damit zurecht?
Re: Abfrageproblem Kriterium: Datum(Tag)=Montag
Verfasst: Fr, 18.01.2008 09:55
von seballa
So ne Glaskugel will ich auch!
Vielen Dank kommedamit sehr gut zurecht.
Gibt es eine Dokumentation der Funktionen bzw. Methoden von HSQLDB??
Vielen Dank Seballa
Re: Abfrageproblem Kriterium: Datum(Tag)=Montag
Verfasst: Fr, 18.01.2008 09:58
von komma4
Dokumentation: siehe Link in meinem ersten posting.
Re: Abfrageproblem Kriterium: Datum(Tag)=Montag
Verfasst: Fr, 18.01.2008 11:28
von seballa
VIELEN DANK! Langsam komm ich rein.
Es geht aber gleich weiter. Ich kann jetzt meine ANZAHL für jeden Tag der Woche anzeigen lassen:
Code: Alles auswählen
SELECT ( SUM( "Anzahl" ) WHERE DAYOFWEEK( "Datum" ) = '2'
Jetzt möchte ich mir alle Tage der Woche auf einmal anzeigen lassen damit mein Ergebnis etwa so aussieht:
Wie könnte ich das machen??
Re: Abfrageproblem Kriterium: Datum(Tag)=Montag
Verfasst: Fr, 18.01.2008 12:12
von komma4
das geht so:
Code: Alles auswählen
SELECT DAYOFWEEK( "Datum" ) AS "Wochentag", SUM( "Anzahl" ) FROM "Tabelle1" GROUP BY "Datum"
Re: Abfrageproblem Kriterium: Datum(Tag)=Montag
Verfasst: Fr, 18.01.2008 12:23
von seballa
WELTKLASSE
Funtioniert hat es aber so
Code: Alles auswählen
SELECT DAYOFWEEK( "Datum" ) AS "Wochentag", SUM( "Anzahl" ) FROM "Tabelle1" Where WHERE ( ( MONTH( "Datum" ) = '1' ) ) GROUP BY "Wochentag"
VIELEN VIELEN DANK