DATEDIFF Syntax Error
Moderator: Moderatoren
-
- Beiträge: 5
- Registriert: Mo, 05.01.2015 17:11
DATEDIFF Syntax Error
Hallo,
ich erstelle im Moment eine Datenbank, wobei es um ein Kreditinstitut gedanklich geht. Ich möchte eine Abfrage erstellen, bei der ich nach den Kunden suchen, die bis zum heutigen Datum noch ausstehende Raten haben.
Bisher sieht das so aus: ... AND SELECT "Finanzdaten"."Eingangsdatum" FROM "Finanzdaten" WHERE DATEDIFF( 'dd', CURRENT_TIME, "Finanzdaten"."Eingangsdatum")>31
Nur ist dort ein Syntax Fehler drin, den ich nicht finde.
Als genauere Fehlermeldung: Not a condition in statement
Bitte schhnelle Hilfe!
ich erstelle im Moment eine Datenbank, wobei es um ein Kreditinstitut gedanklich geht. Ich möchte eine Abfrage erstellen, bei der ich nach den Kunden suchen, die bis zum heutigen Datum noch ausstehende Raten haben.
Bisher sieht das so aus: ... AND SELECT "Finanzdaten"."Eingangsdatum" FROM "Finanzdaten" WHERE DATEDIFF( 'dd', CURRENT_TIME, "Finanzdaten"."Eingangsdatum")>31
Nur ist dort ein Syntax Fehler drin, den ich nicht finde.
Als genauere Fehlermeldung: Not a condition in statement
Bitte schhnelle Hilfe!
Re: DATEDIFF Syntax Error
Hallo sheepfriend,
genauere Fehlermeldung: Not a condition in statement - wo ist das komplette Statement?
AND ist ein Bindewort innerhalb der Bedingungsdefintion einer Abfrage. Ohne die gesamte Abfrage gesehen zu haben (oder zumindest ein bisschen mehr von dem, was sich vor dem AND befindet) lässt sich da schon einmal wenig sagen.
Gruß
Robert
genauere Fehlermeldung: Not a condition in statement - wo ist das komplette Statement?
Code: Alles auswählen
... AND SELECT "Finanzdaten"."Eingangsdatum" FROM ...
Gruß
Robert
Re: DATEDIFF Syntax Error
Hallo,
ins Blaue geschossen, versuche besser oder statt um mit einem Datum zu vergleichen.
Gruß R
ins Blaue geschossen, versuche besser
Code: Alles auswählen
CURRENT_DATE
Code: Alles auswählen
CURRENT_TIMESTAMP
Code: Alles auswählen
CURRENT_TIME
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
-
- Beiträge: 5
- Registriert: Mo, 05.01.2015 17:11
Re: DATEDIFF Syntax Error
SELECT "Finanzdaten"."Kreditnummer", "Finanzdaten"."eingegangene Raten", "Finanzdaten"."Eingangsdatum", "Kundendaten"."Vorname", "Kundendaten"."Nachname", "Kundendaten"."Wohnort", "Kundendaten"."Straße, Nr " FROM "Finanzdaten", "Kundendaten", "Kontodaten" WHERE "Finanzdaten"."Kundennummer" = "Kundendaten"."Kundennr." AND "Kontodaten"."Kreditnummer" = "Finanzdaten"."Kreditnummer"
Das ist das vorher, aber das ist definitiv richtig, da ich das zunächst mit dem Assistenten erstellt habe und er das sozusagen selber geschrieben hat
Das ist das vorher, aber das ist definitiv richtig, da ich das zunächst mit dem Assistenten erstellt habe und er das sozusagen selber geschrieben hat
-
- Beiträge: 5
- Registriert: Mo, 05.01.2015 17:11
Re: DATEDIFF Syntax Error
Und an dem CURRENT_TIME liegt es nicht
Re: DATEDIFF Syntax Error
Hallo sheepfriend,
an CURRENT_TIME habe ich auch zuerst gedacht. Von der Logik her wäre dort nur die aktuelle Uhrzeit zu erwarten, beim CURRENT_TIMESTAMP Datum und Uhrzeit und bei CURRENT_DATE das Datum. Ich habe das kurz getestet und bei der HSQLDB festgestellt, dass mit CURRENT_TIME entgegen der eigentlichen Definition wohl auch das Datum irgendwie mitgeliefert wird. Vielleicht wird einfach beim Datum die Tageszeit auf 0 Uhr gesetzt.
Nun aber zu der Abfrage:
Nicht alles, was ein Assistent zusammen bastelt, muss definitiv richtig sein. Das obere ist es aber, weil da Felder dreier Tabellen vorkommen, die auch in der Tabellenliste stehen und deren Beziehung anschließend zueinander definiert wird.
Das hier ist ebenfalls eine komplette Abfrage, die allerdings nur eine Spalte mit Datumswerten liefert.
Das AND, das beide Abfragen verbindet, ist falsch.
Du möchtest die obere Abfrage mit dem DATEDIFF gefiltert haben?
So hast Du
Und keine zusätzlichen SELECT-Befehl, der mitten in den Bedingungen neue Felder produzieren soll.
Gruß
Robert
an CURRENT_TIME habe ich auch zuerst gedacht. Von der Logik her wäre dort nur die aktuelle Uhrzeit zu erwarten, beim CURRENT_TIMESTAMP Datum und Uhrzeit und bei CURRENT_DATE das Datum. Ich habe das kurz getestet und bei der HSQLDB festgestellt, dass mit CURRENT_TIME entgegen der eigentlichen Definition wohl auch das Datum irgendwie mitgeliefert wird. Vielleicht wird einfach beim Datum die Tageszeit auf 0 Uhr gesetzt.
Nun aber zu der Abfrage:
Code: Alles auswählen
SELECT "Finanzdaten"."Kreditnummer", "Finanzdaten"."eingegangene Raten", "Finanzdaten"."Eingangsdatum", "Kundendaten"."Vorname", "Kundendaten"."Nachname", "Kundendaten"."Wohnort", "Kundendaten"."Straße, Nr " FROM "Finanzdaten", "Kundendaten", "Kontodaten" WHERE "Finanzdaten"."Kundennummer" = "Kundendaten"."Kundennr." AND "Kontodaten"."Kreditnummer" = "Finanzdaten"."Kreditnummer"
Code: Alles auswählen
SELECT "Finanzdaten"."Eingangsdatum" FROM "Finanzdaten" WHERE DATEDIFF( 'dd', CURRENT_TIME, "Finanzdaten"."Eingangsdatum")>31
Das AND, das beide Abfragen verbindet, ist falsch.
Du möchtest die obere Abfrage mit dem DATEDIFF gefiltert haben?
Code: Alles auswählen
SELECT "Finanzdaten"."Kreditnummer", "Finanzdaten"."eingegangene Raten", "Finanzdaten"."Eingangsdatum", "Kundendaten"."Vorname", "Kundendaten"."Nachname", "Kundendaten"."Wohnort", "Kundendaten"."Straße, Nr " FROM "Finanzdaten", "Kundendaten", "Kontodaten" WHERE "Finanzdaten"."Kundennummer" = "Kundendaten"."Kundennr." AND "Kontodaten"."Kreditnummer" = "Finanzdaten"."Kreditnummer" AND DATEDIFF( 'dd', CURRENT_TIME, "Finanzdaten"."Eingangsdatum")>31
Code: Alles auswählen
SELECT ...darzustellende Felder... FROM ...betroffene Tabellen... WHERE ...alle Bedingungen...
Gruß
Robert
-
- Beiträge: 5
- Registriert: Mo, 05.01.2015 17:11
Re: DATEDIFF Syntax Error
Doch so ein einfacher Fehler.. Danke sehr, es funktioniert, nur habe ich jetzt das Problem, dass er wenn die Frist also 31 Tage noch nicht abgelaufen sind alle anzeigt, bei der Abfrage ob die Frist allerdings schon über ist, zeigt er dann eben keinen an, obwohl es einige Dati gibt, die schon über 31 Tagen her sind
Re: DATEDIFF Syntax Error
Hallo sheepfriend,
versuche einmal folgende Abfrage. Dann siehst Du den Fehler, der sicher immer wieder vorkommen kann: immer überprüfen, was eine Funktion für einen Wert heraus gibt.
Gruß
Robert
versuche einmal folgende Abfrage. Dann siehst Du den Fehler, der sicher immer wieder vorkommen kann: immer überprüfen, was eine Funktion für einen Wert heraus gibt.
Code: Alles auswählen
SELECT "Finanzdaten"."Eingangsdatum", DATEDIFF( 'dd', CURRENT_TIME, "Finanzdaten"."Eingangsdatum") AS "dd" FROM "Finanzdaten"
Robert
-
- Beiträge: 5
- Registriert: Mo, 05.01.2015 17:11
Re: DATEDIFF Syntax Error
vielen Dank für diesen Tipp, jetzt funktioniert alles