Seite 1 von 1

Abfrage durch Eingabe der Kalenderwoche

Verfasst: Fr, 05.03.2010 08:36
von Anfaenger2010
Hallo Leute,
ich habe ein kleines Problem und hoffe ihr könnt mir helfen.

Ich habe eine Tabelle mit den Spalten: BuchungsID, Name, testDate, Einsender. nun möchte ich eine Abfrage erstellen, bei der ich nur noch die Kalenderwoche eingeben muss(bezogen auf testDAte) und dann alle Datensätze ausgegeben werden die in dieser KW getestet wurden.

Bis jetzt hab ich es im Kriterium mit dem Befehl: ZWISCHEN :Anfangsdatum UND :Enddatum gemacht, was mir auf Dauer aber zu lange dauert immer zweimal das ganze Datum einzugeben.

Re: Abfrage durch Eingabe der Kalenderwoche

Verfasst: Fr, 05.03.2010 14:47
von AndreasJBittner
Hi,

Du brauchst dann wohl eine Tabelle der Art

KW - Datum1 - Datum2
1 01.01. 07.01.
2 ........

auf die Du Dich dann beziehst. In Deiner Abfrage steht dann eine Sub-Abfrage (SELECT Datum1, Datum2 WHERE KW=<Deine Vorgabe>).

Grüße
Andreas

Re: Abfrage durch Eingabe der Kalenderwoche

Verfasst: Fr, 05.03.2010 15:24
von Anfaenger2010
Hallo Andreas,
ersteinmal herzlichen Dank für die Antwort.

Da ich mich erst seit kurzem mit dieser Thematik beschäftige, habe ich ein kleies "Verständigungsproblem"

Du meinst also, ich müsste in meine Tabelle noch 2 Spalten zufügen KW und Datum2 richtig?

Spalte KW - wird berechnet - ok

aber datum2 , wenn ich dort ein Datum eingeben muss, bin ich wieder genauso schnell.

Für eine Erläuterung wäre ich echt dankbar.

Michael

Re: Abfrage durch Eingabe der Kalenderwoche

Verfasst: Fr, 05.03.2010 15:25
von DPunch
Aloha
AndreasJBittner hat geschrieben:Du brauchst dann wohl eine Tabelle der Art (...) auf die Du Dich dann beziehst. In Deiner Abfrage steht dann eine Sub-Abfrage (SELECT Datum1, Datum2 WHERE KW=<Deine Vorgabe>).
Warum nicht einfach

SELECT * FROM "meineTabelle" WHERE WEEK("testDate") = :Kalenderwoche

?

Re: Abfrage durch Eingabe der Kalenderwoche

Verfasst: Fr, 05.03.2010 15:55
von Anfaenger2010
wäre eine einfache Variante, aber da bekomme ich eine Syntay Fehlermeldung.

SELECT "BookingID" AS "BookingID", "Fullname" AS "Fullname", "testDate" AS "testDate", "Therapeut" AS "Therapeut" FROM "Tabelle1" AS "Tabelle1" ORDER BY "testDate" ASC, "Therapeut" ASC, "BookingID" ASC
SELECT * FROM "Tabelle1" WHERE WEEK("testDate") = :Kalenderwoche

Oder hab ich da was falsch eingetragen?

Re: Abfrage durch Eingabe der Kalenderwoche

Verfasst: Fr, 05.03.2010 16:05
von DPunch
Anfaenger2010 hat geschrieben:Oder hab ich da was falsch eingetragen?
Du darfst die beiden SQL-Anweisungen natürlich nicht einfach so hintereinanderklatschen ;)

SELECT
"BookingID" AS "BookingID", "Fullname" AS "Fullname", "testDate" AS "testDate", "Therapeut" AS "Therapeut"
FROM
"Tabelle1" AS "Tabelle1"
ORDER BY
"testDate" ASC, "Therapeut" ASC, "BookingID" ASC
WHERE
WEEK("testDate") = :Kalenderwoche

Wäre die funktionierende Variante.

Re: Abfrage durch Eingabe der Kalenderwoche

Verfasst: Fr, 05.03.2010 16:24
von Anfaenger2010
herzlichen Dank, ich hab jetzt mal deine SQL kopiert und bekomme immernoch eine Fehlermeldung.
Syntax error in SQL expression

Idee ?

Re: Abfrage durch Eingabe der Kalenderwoche

Verfasst: Fr, 05.03.2010 16:37
von DPunch
Ähhhm, klar. :oops:

Die WHERE-Klausel muss natürlich vor das ORDER BY.
Hatte die WHERE-Klausel eben einfach ohne groß nachzudenken an Dein SQL-Statement hintendran geklatscht.

SELECT
"BookingID" AS "BookingID", "Fullname" AS "Fullname", "testDate" AS "testDate", "Therapeut" AS "Therapeut"
FROM
"Tabelle1" AS "Tabelle1"
WHERE
WEEK("testDate") = :Kalenderwoche
ORDER BY
"testDate" ASC, "Therapeut" ASC, "BookingID" ASC

Re: Abfrage durch Eingabe der Kalenderwoche

Verfasst: Fr, 05.03.2010 16:43
von pmoegenb

Code: Alles auswählen

SELECT
"BookingID", "Fullname", "testDate", "Therapeut"
FROM "Tabelle1"
WHERE WEEK("testDate") = :Kalenderwoche
ORDER BY "testDate" ASC, "Therapeut" ASC, "BookingID" ASC
- Den Zusatz AS "BookingID" etc. kannst Du weglassen, wenn der Als-Name gleich dem Feldnamen ist.
- Den Tabellennamen kannst Du nicht umbenennen
- Die WHERE-Klausel muss vor der ORDER BY-Klausel stehen

Re: Abfrage durch Eingabe der Kalenderwoche

Verfasst: Fr, 05.03.2010 16:45
von Anfaenger2010
KLASSE!!

herzlichen DANK

funktioniert :D

Re: Abfrage durch Eingabe der Kalenderwoche

Verfasst: Fr, 05.03.2010 16:50
von Anfaenger2010
Jetzt nur noch eine Frage.
Wie bekomme ich die Buchungen vom aktuellem Jahr?
So werden mir alle Jahre aufgelistet.

Re: Abfrage durch Eingabe der Kalenderwoche

Verfasst: Fr, 05.03.2010 17:26
von DPunch
SELECT
"BookingID" AS "BookingID", "Fullname" AS "Fullname", "testDate" AS "testDate", "Therapeut" AS "Therapeut"
FROM
"Tabelle1" AS "Tabelle1"
WHERE
WEEK("testDate") = :Kalenderwoche AND YEAR("testDate") = YEAR(NOW())
ORDER BY
"testDate" ASC, "Therapeut" ASC, "BookingID" ASC

Re: Abfrage durch Eingabe der Kalenderwoche

Verfasst: Fr, 05.03.2010 17:54
von Anfaenger2010
ja, klar
Danke nochmals.

Re: Abfrage durch Eingabe der Kalenderwoche

Verfasst: Mo, 28.11.2011 18:21
von F3K Total
Hallo,
versuche es doch mal so:

Code: Alles auswählen

SELECT * FROM "Montagefehler Gesamt" WHERE WEEK( "Datum" ) = WEEK( NOW( ) )-1  AND YEAR( "Datum" ) = YEAR( NOW( ) )
Gruß R