Seite 1 von 1
Abfrage "Datum der einen Tab größer Datum der anderen Tab"
Verfasst: Di, 26.03.2013 18:35
von NTClient
Hallo Jungs (und Mädels)!
Ich steh aufm Schlauch:
Ich will aus der Tabelle "Mitglieder" die Mitglieder abfragen, die im aktuellen Jahr eingetreten sind. Sowas wie
Code: Alles auswählen
select ... where "eintrittsdatum" > erster_Tag_des_Jahres
Ich habe auch schon überlegt, den "ersten Tag des Jahres" manuell in eine einspaltige, einzeilige Tabelle "Wie heißt der erste Tag des Jahres" zu schreiben. Dann bräuchte ich eine Abfrage wie
Code: Alles auswählen
select ... from "mitglieder", "Wie heißt der erste Tag des Jahres" wehre "Eintrittsdatum" > "ersten Tag des Jahres"
Versteht einer, was ich brauche?
Re: Abfrage "Datum der einen Tab größer Datum der anderen Ta
Verfasst: Di, 26.03.2013 19:03
von F3K Total
So etwa?
Code: Alles auswählen
where "eintrittsdatum" >= Year(Current_date)||'-01-01'
Gruß R
Re: Abfrage "Datum der einen Tab größer Datum der anderen Ta
Verfasst: Di, 26.03.2013 20:03
von NTClient
Wow! Genau!!
Danke!
Aber woher weiß man das? Wie soll da einer drauf kommen?
Year(Current_date)||'-01-01'
Kannst Du mir den Befehl etwas aufschlüsseln?
Current_date? Ist das das selbe wie Curdate()?
||? Mußte ich erst suchen auf der Tastatur? Warum |? Und warum zweimal ||?
'-01-01' ? Ist das nicht ein Text?
OK: Jahr(aktelles Datum) + '-01-01' gibt 2013-01-01
Ich glaub, ich brauch mal ne Liste mit den Funktionen für Sonderzeichen.
Aber vielen Dank, hat funktioniert. Jetzt müßte nur noch einer mein Thema von "Datum der einen Tab größer Datum der anderen Tab" in "Suche Einträge aus aktuellem Jahr" oder so ähnlich ändern!
Gruß Bernd!
Re: Abfrage "Datum der einen Tab größer Datum der anderen Ta
Verfasst: Di, 26.03.2013 20:10
von F3K Total
NTClient hat geschrieben:Jetzt müßte nur noch einer mein Thema von "Datum der einen Tab größer Datum der anderen Tab" in "Suche Einträge aus aktuellem Jahr" oder so ähnlich ändern!
einer bist Du selber, gehe in den ersten Eintrag, klicke auf ändern, und ändere die Kopfzeile ...
Gruß R
Re: Abfrage "Datum der einen Tab größer Datum der anderen Ta
Verfasst: Di, 26.03.2013 20:34
von juetho
F3K Total hat geschrieben:So etwa?
Code: Alles auswählen
where "eintrittsdatum" >= Year(Current_date)||'-01-01'
Ich will nicht als Besserwisser auftreten. Ich halte es aber für einen Umweg, aus einem Datum eine Zahl herauszuholen, diese mit einem String zu einem neuen String zu verknüpfen und dann implizit als Datum zum Vergleich heranziehen (oder das Datum implizit als String zu vergleichen). Meiner Ansicht nach ist ein Vergleich gleicher Typen vorzuziehen, also so etwa:
NTClient hat geschrieben:Kannst Du mir den Befehl etwas aufschlüsseln?
Current_date? Ist das das selbe wie Curdate()?
||? Mußte ich erst suchen auf der Tastatur? Warum |? Und warum zweimal ||?
'-01-01' ? Ist das nicht ein Text?
|| ist die Standardverknüpfung von Zeichenketten bei SQL, siehe
Einführung in SQL. Jedes SQL-System hat seine eigenen eingebauten Funktionen. F3K hat YEAR verwendet. Current_date ist SQL-Standard. Diejenigen von HSQL (also der internen Datenbank von Base) stehen im Anhang des
Base-Handbuchs Seite 321 ff.
Gruß Jürgen
Re: Abfrage "Datum der einen Tab größer Datum der anderen Ta
Verfasst: Di, 26.03.2013 20:44
von F3K Total
Hallo Jürgen,
da hast Du natürlich recht!
juetho hat geschrieben:Ich will nicht als Besserwisser auftreten. Ich halte es aber für einen Umweg ...
Im Gegenteil, ich freue mich über solche Verbesserungen, habe wieder etwas Grundlegendes gelernt.
Danke!
Gruß Rik
Re: Abfrage "Datum der einen Tab größer Datum der anderen Ta
Verfasst: Mi, 27.03.2013 10:04
von NTClient
Noch mal vielen Dank! Ich habe jetzt:
Code: Alles auswählen
SELECT "ID_Mitglieder"."Mitglieds_Nr", "ID_Mitglieder"."Austritt", YEAR( "Austritt" ) FROM "ID_Mitglieder" WHERE ( YEAR( "Austritt" ) >= YEAR( CURDATE( ) )
Ich habe die Abfrage in der Bearbeitungsansicht (rechte Maustaste auf die Abfrage und dann BEABEITEN) erstellt, indem ich
als Abfragespalte hinzugefügt habe und dann
in die Zeile für Kriterium geschrieben habe.
Funktioniert auch. Komisch nur:
In der SQL-Ansicht des Befehls kann man den Code so auch lesen. Aber wenn ich erneut in die Bearbeitungsansicht wechsele, also in die "grafische" Abfragebearbeitung sehe ich das Kriterium nicht mehr. Der Eintrag ist leer. Ähnlich, wie das bei der Sortierfunktion ist:
viewtopic.php?f=8&t=60868
Das ist wirklich blöd!
Gruß Bernd!