Base Abfrage - alle Einträge der letzten Woche

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

onceuponatime
**
Beiträge: 21
Registriert: Mo, 13.01.2014 09:26

Base Abfrage - alle Einträge der letzten Woche

Beitrag von onceuponatime »

Hallo,

brauche dringend eure Hilfe.
Wir haben viele Lieferscheine in unserer Datenbank.
Über eine Abfrage möchte ich allerdings bitte nur die Lieferscheine der LETZTEN WOCHE angezeigt bekommen.

Ich kennen den Befehl um etwas zeitlich einzugrenzen. Bsp: ZWISCHEN #01.01.2014# UND #01.02.2014#
Wie kann ich dies allerdings abhängig vom heutigen Datum machen?
Gibt es einen Befehl der in etwa so lautet: ZWISCHEN heute und heute minus 7 ?

Danke für eure Hilfe
Grüße
Michaela
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Base Abfrage - alle Einträge der letzten Woche

Beitrag von RobertG »

Hallo Michaela,

vielleicht hilft Dir eher so etwas wie WEEK("Datum") = WEEK(NOW)-1 . Das sichert noch nicht den Übergang beim Jahresanfang. Deswegen im Folgenden etwas komplexer:
SELECT "Datum" FROM "Datumstest" WHERE (YEAR("Datum") = YEAR(NOW()) AND WEEK("Datum") = WEEK(NOW())-1 ) OR (WEEK(NOW()) = 0 AND YEAR("Datum") = YEAR(NOW())-1 AND WEEK("Datum") = 52)

Gruß

Robert
onceuponatime
**
Beiträge: 21
Registriert: Mo, 13.01.2014 09:26

Re: Base Abfrage - alle Einträge der letzten Woche

Beitrag von onceuponatime »

Hallo Robert,

vielen Dank für deine Antwort.
Leider bekomme ich auch mit deinen Formeln (sowie mit allen bisherigen die ich probiert habe) eine Fehlermeldung:

syntax error, unexpected INVALIDSYMBOL, Invalid Symbol: "Datum")

Die Formel gebe ich als Kriterium in meiner Tabelle "Docment_Date" eine. Diese beinhaltet auch das Datum und ist vom Typ her als DateTime eingestellt.
Auch Ausdrücke wie "NOW" scheint allerdings nicht zu funktionieren, daher verstehe ich nicht ganz, wo das Problem liegen könnte.
Hast Du vielleicht eine Idee?

Liebe Grüße
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Base Abfrage - alle Einträge der letzten Woche

Beitrag von RobertG »

Hallo Michaela,

"Datum" ist bei mir ein Feld aus der Tabelle "Datumstest". Du musst an die Positionen also das Feld setzen, das dem Deiner Tabelle entspricht.

Gruß

Robert
onceuponatime
**
Beiträge: 21
Registriert: Mo, 13.01.2014 09:26

Re: Base Abfrage - alle Einträge der letzten Woche

Beitrag von onceuponatime »

Guten Morgen,

sorry, habe mich falsch ausgedrückt.
Meine Tabelle heißt "Document" und ein Feld darin "Document_Date".
Dieses Feld habe ich in meiner Abfrage hinzugefügt und möchte nun unter Funktion den notwendigen Befehl eingeben, dass er eben nur die Einträge der letzten Woche zeigt. Doch nichtmal einfache Befehle wie =TODAY() o.ä. scheinen zu funktionieren. Es funktionietr nur, wenn ich das Datum manuell eingebe.

Danke
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Base Abfrage - alle Einträge der letzten Woche

Beitrag von RobertG »

Hallo Michaela,

in der grafischen Ansicht ist das Eingeben solcher Bedingungen ungleich schwerer als direkt im SQL-Modus. Schalte einfach beim Abfrageentwurf die grafische Oberfläche ab (Symbol mit einem Dreieck).
Dann siehst Du den Code, den Du durch die grafische Vorauswahl erzeugt hast. Jetzt füge hinzu:

Code: Alles auswählen

 WHERE (YEAR("Document_Date") = YEAR(NOW()) AND WEEK("Document_Date") = WEEK(NOW())-1 ) OR (WEEK(NOW()) = 0 AND YEAR("Document_Date") = YEAR(NOW())-1 AND WEEK("Document_Date") = 52)
Wenn Du die Abfrage auf zwei Tabellen beziehst, dann steht auf jeden Fall schon einmal WHERE im Code. Außerdem muss dann nicht nur das Feld, sondern auch die Tabelle benannt werden.

Code: Alles auswählen

 AND (YEAR("Document"."Document_Date") = YEAR(NOW()) AND WEEK("Document"."Document_Date") = WEEK(NOW())-1 ) OR (WEEK(NOW()) = 0 AND YEAR("Document"."Document_Date") = YEAR(NOW())-1 AND WEEK("Document"."Document_Date") = 52)
Diesen Code hängst Du einfach an die anderen Bedingungen an. Er muss lediglich vor einer eventuellen Sortierungsanweisung (ORDER BY) stehen.

Gruß

Robert
Antworten