❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Abfrage aus Abfrage
Abfrage aus Abfrage
Hallo,
ich möchte mit einer Abfrage Datensätze aus einer anderen Abfrage herausfiltern.
Das gelingt mir nicht. Ich erhalte folgende Meldung (Auszug): Cannot be in ORDER BY clause in stament [Select ....
Geht eine solche Abfrage nicht?
Ich würde gerne einen Scrennshot von der Meldung hier anhängen, weil diese sehr lang ist. Geht das? Und wenn ja wie?
ich möchte mit einer Abfrage Datensätze aus einer anderen Abfrage herausfiltern.
Das gelingt mir nicht. Ich erhalte folgende Meldung (Auszug): Cannot be in ORDER BY clause in stament [Select ....
Geht eine solche Abfrage nicht?
Ich würde gerne einen Scrennshot von der Meldung hier anhängen, weil diese sehr lang ist. Geht das? Und wenn ja wie?
Gruß
debrequ
debrequ
Re: Abfrage aus Abfrage
Hi,
versuche mal die erste Abfrage ohne ORDER BY.
Das kannst du in der zweiten machen.
Wenn das nicht hilft, lade lieber die Datenbank, ggf. verfremdet, hoch, ein Bild hilft nicht, mindestens aber den SQL Code der Abfragen.
Gruß R
versuche mal die erste Abfrage ohne ORDER BY.
Das kannst du in der zweiten machen.
Wenn das nicht hilft, lade lieber die Datenbank, ggf. verfremdet, hoch, ein Bild hilft nicht, mindestens aber den SQL Code der Abfragen.
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Abfrage aus Abfrage
Hallo debrequ,
so eine Meldung kommt eventuell, wenn Du mit Funktionen in der vorhergehenden Abfrage gearbeitet hast. Die einfachste Lösung ist hier: Aus der vorhergehenden Abfrage eine Ansicht zu machen. Damit kann Base dann wieder arbeiten wie mit einer Tabelle - nur ist die Dateneingabe in der Ansicht naturgemäß nicht möglich.
Außerdem brauchst Du ja nicht, wie R. anmerkt, bereits die erste Abfrage zu sortieren. Es reicht doch, dies in der 2. Abfrage zu erledigen.
Gruß
Robert
so eine Meldung kommt eventuell, wenn Du mit Funktionen in der vorhergehenden Abfrage gearbeitet hast. Die einfachste Lösung ist hier: Aus der vorhergehenden Abfrage eine Ansicht zu machen. Damit kann Base dann wieder arbeiten wie mit einer Tabelle - nur ist die Dateneingabe in der Ansicht naturgemäß nicht möglich.
Außerdem brauchst Du ja nicht, wie R. anmerkt, bereits die erste Abfrage zu sortieren. Es reicht doch, dies in der 2. Abfrage zu erledigen.
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Abfrage aus Abfrage
Hallo,
Aber hier die Abfrage in SQL: SELECT "ID", "Mitgliedsnummer", "Geschl", "Name", "VName", "ZWort", "Straße", "PLZ", "Ort", "GebDatum", "Austritt", YEAR( "GebDatum" ) AS "GebJahr", MONTH( "GebDatum" ) AS "GebMonat", DAY( "GebDatum" ) AS "GebTag", YEAR( NOW( ) ) - YEAR( "GebDatum" ) AS "Alter" FROM "Mitglieder" WHERE ( "Austritt" = {d '2017-12-31' } OR "Austritt" IS NULL )
Bis hier her funktioniert die Abfrage
"Mitglieder" ist keine Abfrage sondern die Ursprungstabelle. Entschudigung.
Die beiden Kriterien "Austritt": IS NULL und "Austritt" = {d '2017-12-31' } stehen in der Design-Ansicht in zwei Zeilen Kriterium.
Schreibe ich sie in eine Zeile (IST LEER ODER #31.12.2017# ) kommt die Meldung "Syntaxfehler im SQL-Ausdruck"
Die WHERE-Anweisung möchte ich nun um die Jahre 1927, 1937, 1947, 1957, 1967, 1977, 1987 und 1997 erweitern, also alle mit Runden Geburtstagen.
Wie geht das?
Wenn ich wüsste wie das geht. ich arbeite nämlich nur in der Design-Ansicht. Das ORDER BY wird nicht von mir eingegeben.F3K Total hat geschrieben:versuche mal die erste Abfrage ohne ORDER BY.
Aber hier die Abfrage in SQL: SELECT "ID", "Mitgliedsnummer", "Geschl", "Name", "VName", "ZWort", "Straße", "PLZ", "Ort", "GebDatum", "Austritt", YEAR( "GebDatum" ) AS "GebJahr", MONTH( "GebDatum" ) AS "GebMonat", DAY( "GebDatum" ) AS "GebTag", YEAR( NOW( ) ) - YEAR( "GebDatum" ) AS "Alter" FROM "Mitglieder" WHERE ( "Austritt" = {d '2017-12-31' } OR "Austritt" IS NULL )
Bis hier her funktioniert die Abfrage
"Mitglieder" ist keine Abfrage sondern die Ursprungstabelle. Entschudigung.
Die beiden Kriterien "Austritt": IS NULL und "Austritt" = {d '2017-12-31' } stehen in der Design-Ansicht in zwei Zeilen Kriterium.
Schreibe ich sie in eine Zeile (IST LEER ODER #31.12.2017# ) kommt die Meldung "Syntaxfehler im SQL-Ausdruck"
Die WHERE-Anweisung möchte ich nun um die Jahre 1927, 1937, 1947, 1957, 1967, 1977, 1987 und 1997 erweitern, also alle mit Runden Geburtstagen.
Wie geht das?
Zuletzt geändert von debrequ am So 19. Mär 2017, 18:00, insgesamt 1-mal geändert.
Gruß
debrequ
debrequ
Re: Abfrage aus Abfrage
Hallo debrequ,
Die Where-Anweisung kannst Du ergänzen um
Hier wird das Alter nach Jahren genommen und durch 5 dividiert. Existiert ein Rest, so wird der angegeben. Das Ergebnis ist also 0, wenn das Alter genau durch 5 teilbar ist.
Gruß
Robert
Das liegt daran, dass der Editor aus dieser Zeile nichts mehr versteht. IST LEER wird intern umgesetzt in IS NULL. Die Lage der Eingabe in zwei Zeilen macht aus der Verbindung OR. ODER kennt SQL nicht - und wird hier einfach so weiter gegeben.Schreibe ich sie in eine Zeile (IST LEER ODER #31.12.2017# ) kommt die Meldung "Syntaxfehler im SQL-Ausdruck"
Die Where-Anweisung kannst Du ergänzen um
Code: Alles auswählen
AND MOD((YEAR( NOW( ) ) - YEAR( "GebDatum" )),5) = 0
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Abfrage aus Abfrage
Hallo Robert,
ich glaube ich habe die Erweiterung falsch eingefügt.
Es kommt jedenfalls nicht das gewünschte Ergebis raus.
Hier die neue SQL-Anweisung:
SELECT "ID", "Mitgliedsnummer", "Geschl", "Name", "VName", "ZWort", "Straße", "PLZ", "Ort", "GebDatum", "Austritt", YEAR( "GebDatum" ) AS "GebJahr", MONTH( "GebDatum" ) AS "GebMonat", DAY( "GebDatum" ) AS "GebTag", YEAR( NOW( ) ) - YEAR( "GebDatum" ) AS "Alter" FROM "Mitglieder" WHERE ( "Austritt" IS NULL OR "Austritt" = {d '2017-12-31' } AND MOD( ( YEAR( NOW( ) ) - YEAR( "GebDatum" ) ), 5 ) = 0 )
[quote="RobertG"]
Die Where-Anweisung kannst Du ergänzen um
AND MOD((YEAR( NOW( ) ) - YEAR( "GebDatum" )),5) = 0[/code]
Wo wird das Ergebnis hingeschrieben? In der Abfrage finde ich das nicht. Halt, mein Fehler ich hatte die Spalte nicht auf "sichtbar" gehakt.
Es scheint also zu gehen. Jetzt muss ich nur noch die mit "0" herausfiltern.
ich glaube ich habe die Erweiterung falsch eingefügt.
Es kommt jedenfalls nicht das gewünschte Ergebis raus.
Hier die neue SQL-Anweisung:
SELECT "ID", "Mitgliedsnummer", "Geschl", "Name", "VName", "ZWort", "Straße", "PLZ", "Ort", "GebDatum", "Austritt", YEAR( "GebDatum" ) AS "GebJahr", MONTH( "GebDatum" ) AS "GebMonat", DAY( "GebDatum" ) AS "GebTag", YEAR( NOW( ) ) - YEAR( "GebDatum" ) AS "Alter" FROM "Mitglieder" WHERE ( "Austritt" IS NULL OR "Austritt" = {d '2017-12-31' } AND MOD( ( YEAR( NOW( ) ) - YEAR( "GebDatum" ) ), 5 ) = 0 )
[quote="RobertG"]
Die Where-Anweisung kannst Du ergänzen um
AND MOD((YEAR( NOW( ) ) - YEAR( "GebDatum" )),5) = 0[/code]
Wo wird das Ergebnis hingeschrieben? In der Abfrage finde ich das nicht. Halt, mein Fehler ich hatte die Spalte nicht auf "sichtbar" gehakt.
Es scheint also zu gehen. Jetzt muss ich nur noch die mit "0" herausfiltern.
Gruß
debrequ
debrequ
Re: Abfrage aus Abfrage
Hallo Robert,
es funtioniert doch noch nicht richtig.
Mit 0 werden nicht nur die Mitglieder mit runden Geburtstagen gekennzeichnet, sondern auch die mit 25, 35, 45 usw.
Hier noch mal die komplette SQL-Anweisung:
SELECT "ID", "Mitgliedsnummer", "Geschl", "Name", "VName", "ZWort", "Straße", "PLZ", "Ort", "GebDatum", "Austritt", YEAR( "GebDatum" ) AS "GebJahr", MONTH( "GebDatum" ) AS "GebMonat", DAY( "GebDatum" ) AS "GebTag", YEAR( NOW( ) ) - YEAR( "GebDatum" ) AS "Alter", MOD( ( YEAR( NOW( ) ) - YEAR( "GebDatum" ) ), 5 ) FROM "Mitglieder" WHERE ( "Austritt" IS NULL OR "Austritt" = {d '2017-12-31' } AND MOD( ( YEAR( NOW( ) ) - YEAR( "GebDatum" ) ), 5 ) = 0 ) ORDER BY ( MOD( ( YEAR( NOW( ) ) - YEAR( "GebDatum" ) ), 5 ) ) ASC
Die Mitglieder mit Austritt am 31.12.2017 fehlen.
es funtioniert doch noch nicht richtig.
Mit 0 werden nicht nur die Mitglieder mit runden Geburtstagen gekennzeichnet, sondern auch die mit 25, 35, 45 usw.
Hier noch mal die komplette SQL-Anweisung:
SELECT "ID", "Mitgliedsnummer", "Geschl", "Name", "VName", "ZWort", "Straße", "PLZ", "Ort", "GebDatum", "Austritt", YEAR( "GebDatum" ) AS "GebJahr", MONTH( "GebDatum" ) AS "GebMonat", DAY( "GebDatum" ) AS "GebTag", YEAR( NOW( ) ) - YEAR( "GebDatum" ) AS "Alter", MOD( ( YEAR( NOW( ) ) - YEAR( "GebDatum" ) ), 5 ) FROM "Mitglieder" WHERE ( "Austritt" IS NULL OR "Austritt" = {d '2017-12-31' } AND MOD( ( YEAR( NOW( ) ) - YEAR( "GebDatum" ) ), 5 ) = 0 ) ORDER BY ( MOD( ( YEAR( NOW( ) ) - YEAR( "GebDatum" ) ), 5 ) ) ASC
Die Mitglieder mit Austritt am 31.12.2017 fehlen.
Gruß
debrequ
debrequ
Re: Abfrage aus Abfrage
Hallo debrequ,
das mit den runden Geburtstagen habe ich übersehen - vor kurzem war etwas ähnliches mit den 5ern wegen irgendwelcher Jubiläen:
Setze einmal die Klammer entsprechend, so dass zum einen die Austrittsbedingung trifft und zum anderen die Leute mit runden Geburtstagen aufgezählt werden. Den Code kannst Du direkt in die SQL-Ansicht hinein kopieren. Wie das in der GUI aussieht habe ich nicht nachvollzogen.
Noch besser ist natürlich, wenn der Austritt auch festgelegt wird
Gruß
Robert
das mit den runden Geburtstagen habe ich übersehen - vor kurzem war etwas ähnliches mit den 5ern wegen irgendwelcher Jubiläen:
Code: Alles auswählen
SELECT "ID", "Mitgliedsnummer", "Geschl", "Name", "VName", "ZWort", "Straße", "PLZ", "Ort", "GebDatum", "Austritt", YEAR( "GebDatum" ) AS "GebJahr", MONTH( "GebDatum" ) AS "GebMonat", DAY( "GebDatum" ) AS "GebTag", YEAR( NOW( ) ) - YEAR( "GebDatum" ) AS "Alter" FROM "Mitglieder" WHERE ( ("Austritt" IS NULL OR "Austritt" = {d '2017-12-31' } ) AND MOD( ( YEAR( NOW( ) ) - YEAR( "GebDatum" ) ), 10 ) = 0 ) ORDER BY ( YEAR( NOW( ) ) - YEAR( "GebDatum" ) ) ASC
Noch besser ist natürlich, wenn der Austritt auch festgelegt wird
Code: Alles auswählen
... "Austritt" = YEAR(NOW())||'-12-31' ) AND MOD ...
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Abfrage aus Abfrage
Hallo Robert,
nun hat es geklappt. Zunächst hatte ich eine schließende Klammer zu viel. Nachdem ich die gelöscht hatte, war das Eregebnis so wie ich es mir gewünscht habe.
Danke für die Unterstützung.
nun hat es geklappt. Zunächst hatte ich eine schließende Klammer zu viel. Nachdem ich die gelöscht hatte, war das Eregebnis so wie ich es mir gewünscht habe.
Danke für die Unterstützung.
Gruß
debrequ
debrequ
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.