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.
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

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