zeilennummerierung in abfragen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

sibc
*
Beiträge: 15
Registriert: Sa, 21.02.2015 23:04

Re: zeilennummerierung in abfragen

Beitrag von sibc »

auch auf die gefahr hin mich jetzt gänzlich zu blamieren... melde ich mich nochmals: wieso funktioniert dein, lieber robert, sql befehl nun nicht mehr in meiner neuen abfrage, die sich "mahnliste" nennt?

ich denke ich habe alles korrekt umgelegt...

habe folgende felder: name, vorname, geb.datum, bezeichnung (des workshops) und das feld "zahlung", das so es "null" ist (ohne eintrag), bedeutet, noch keinen zahlungseingang vermerkt zu haben und folglich gemahnt werden muss...

ich tippte:

SELECT ( SELECT COUNT( "TEILNEHMER"."Name" ) FROM "TEILNEHMER_WORKSHOPS", "WORKSHOPS", "TEILNEHMER", "TEILNEHMER ELTERN" WHERE "TEILNEHMER_WORKSHOPS"."Workshop ID_f" = "WORKSHOPS"."Workshop ID" AND "TEILNEHMER_WORKSHOPS"."Teilnehmer ID_f" = "TEILNEHMER"."Teilnehmer ID" AND "TEILNEHMER"."Teilnehmer Eltern ID_f" = "TEILNEHMER ELTERN"."Teilnehmer Eltern ID" AND "TEILNEHMER_WORKSHOPS"."Zahlung" IS NULL AND "TEILNEHMER"."Name" || "TEILNEHMER"."Vorname" <= "a"."Name" || "a"."Vorname" ) AS "Nr.", "a"."Name", "a"."Vorname", "a"."Geb.Datum", "WORKSHOPS"."Bezeichnung" AS "unbezahlter Workshop", "TEILNEHMER ELTERN"."Email" AS "Email Eltern" FROM "TEILNEHMER_WORKSHOPS", "WORKSHOPS", "TEILNEHMER" AS "a", "TEILNEHMER ELTERN" WHERE "TEILNEHMER_WORKSHOPS"."Workshop ID_f" = "WORKSHOPS"."Workshop ID" AND "TEILNEHMER_WORKSHOPS"."Teilnehmer ID_f" = "a"."Teilnehmer ID" AND "a"."Teilnehmer Eltern ID_f" = "TEILNEHMER ELTERN"."Teilnehmer Eltern ID" AND "TEILNEHMER_WORKSHOPS"."Zahlung" IS NULL ORDER BY "a"."Name"||"a"."Vorname" ASC

ich verstehe nicht wieso ich dann stehts eine syntaxError meldung erhalte...

leicht irritierte grüße!
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: zeilennummerierung in abfragen

Beitrag von RobertG »

Hallo sibc,

ich habe Deinen hier geposteten SQL-Code in eine Abfrage eingefügt, ausgeführt und eine Liste von 4 Personen mit Nummerierung erhalten. Das alles in der Datenbank dataTEST.odb, die Du hier weiter gegeben hast.
Kein Problem hier.

Gruß

Robert
sibc
*
Beiträge: 15
Registriert: Sa, 21.02.2015 23:04

Re: zeilennummerierung in abfragen

Beitrag von sibc »

das ist sehr seltsam. jetzt hat es auch bei mir funktioniert. als ich gestern versuchte die abfrage zu erstellen, direkt über sql befehl, stürzte zuerst openoffice ab. als ich es dann probierte über "entwurfsansicht" und den befehl nach umschalten auf "sql" reinkopierte, sagte er mir "syntax error".
heute wieder "syntax error" zuerst. dann plötzlich gings. wieso ist das so? ich hatte nie was geändert...

kann es sein dass das programm einen mangel hat? ich meine meine version auf meinem rechner? habe ein macBook...

danke trotzdem.
sibc
*
Beiträge: 15
Registriert: Sa, 21.02.2015 23:04

Re: zeilennummerierung in abfragen

Beitrag von sibc »

jetzt habe ich das selbe problem wieder, versuchte nun grad die entsprechende mahnliste für unbezahlte kurse zu erstellen... absturz, im besten fall syntax error.
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: zeilennummerierung in abfragen

Beitrag von RobertG »

Hallo sibc,

ich würde den folgenden Weg gehen:
Zuerst einmal eine Abfrage erstellen, die alle für Dich häufig wiederkehrenden Elemente enthält (Name, Vorname, Geburtstag, Workshopbezeichnung usw.) Aus dieser Abfrage dann eine Ansicht erstellen, die Du anschließend nach Belieben filtern kannst. Dann fällt auch die Nummerierung wesentlich leichter.

Ich arbeite hier zur Zeit überwiegend mit LO 4.3.6.2. Da habe ich bisher keine Probleme bei Deiner Datenbank gehabt.

Gruß

Robert
sibc
*
Beiträge: 15
Registriert: Sa, 21.02.2015 23:04

Re: zeilennummerierung in abfragen

Beitrag von sibc »

ich versuche es nun mit libreOffice, 4.3.6.2. stürzt auch nicht mehr ab... habe meine mahnlisten fertig, zumindest. das klappte.

nun frag ich mich, ob ich einfach zu blöd bin...

SELECT ( SELECT COUNT ( "TEILNEHMER"."Name" ) FROM "TEILNEHMER_WORKSHOPS", "EIGNUNG KURS", "TEILNEHMER", "TEILNEHMER ELTERN" WHERE "TEILNEHMER_WORKSHOPS"."Eignung Kurs ID_f" = "EIGNUNG KURS"."Eignung Kurs ID" AND "TEILNEHMER"."Teilnehmer Eltern ID_f" = "TEILNEHMER ELTERN"."Teilnehmer Eltern ID" AND "TEILNEHMER"."Name" || "TEILNEHMER"."Vorname" <= "a"."Name" || "a"."Vorname" ) AS "Nr.", "a"."Name", "a"."Vorname", "a"."Geb.Datum", "EIGNUNG KURS"."Parameter" AS "Eignung Kurs?", "TEILNEHMER ELTERN"."Email" AS "Email Eltern" FROM "TEILNEHMER" AS "a", "TEILNEHMER ELTERN", "TEILNEHMER_WORKSHOPS", "EIGNUNG KURS" WHERE "a"."Teilnehmer Eltern ID_f" = "TEILNEHMER ELTERN"."Teilnehmer Eltern ID" AND "TEILNEHMER_WORKSHOPS"."Eignung Kurs ID_f" = "EIGNUNG KURS"."Eignung Kurs ID" AND "TEILNEHMER_WORKSHOPS"."Teilnehmer ID_f" = "a"."Teilnehmer ID" ORDER BY "a"."Name" || "a"."Vorname" ASC

wenn du das nochmals probieren könntest? :? bei mir kommen dann zwar die beiden testdatensätze, allerdings mit einer mir gänzlich unerklärlichen nummerierung... 14 und 16 ist ihnen vorgestellt. gibt es dafür eine erklärung?

lieben (beschämten) gruß!
sibc
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: zeilennummerierung in abfragen

Beitrag von RobertG »

Hallo sibc,

alles kein Problem. Das ist wirklich bei der abfrage nicht einfach zu durchschauen. deshalb vielleicht doch zuerst eine Ansicht erstellen und darauf aufbauen ...

Code: Alles auswählen

WHERE "TEILNEHMER_WORKSHOPS"."Eignung Kurs ID_f" = "EIGNUNG KURS"."Eignung Kurs ID" AND "TEILNEHMER"."Teilnehmer Eltern ID_f" = "TEILNEHMER ELTERN"."Teilnehmer Eltern ID" AND "TEILNEHMER"."Name" || "TEILNEHMER"."Vorname" <= "a"."Name" || "a"."Vorname" 
steht in der Unterabfrage, wobei die letzte Bedingung

Code: Alles auswählen

"TEILNEHMER"."Name" || "TEILNEHMER"."Vorname" <= "a"."Name" || "a"."Vorname"
nur dazu dient, den Kontakt zum aktuellen äußeren Datensatz zu erhalten.

Code: Alles auswählen

WHERE "a"."Teilnehmer Eltern ID_f" = "TEILNEHMER ELTERN"."Teilnehmer Eltern ID" AND "TEILNEHMER_WORKSHOPS"."Eignung Kurs ID_f" = "EIGNUNG KURS"."Eignung Kurs ID" AND "TEILNEHMER_WORKSHOPS"."Teilnehmer ID_f" = "a"."Teilnehmer ID"
steht in der äußeren Abfrage. Hier ist "a" statt der Tabelle "TEILNEHMER" verzeichnet.
Wenn Du genau hinschaust, dann steht in der äußeren Abfrage eine zusätzliche Bedingung:

Code: Alles auswählen

AND "TEILNEHMER_WORKSHOPS"."Teilnehmer ID_f" = "a"."Teilnehmer ID"
die auch in die Unterabfrage muss, damit die gleichen Datensätze abgefragt werden,

Code: Alles auswählen

AND "TEILNEHMER_WORKSHOPS"."Teilnehmer ID_f" = "TEILNEHMER"."Teilnehmer ID"
nur eben mit der Änderung, dass aus der Bezeichnung "a" wieder "TEILNEHMER" wird.

Gruß

Robert
sibc
*
Beiträge: 15
Registriert: Sa, 21.02.2015 23:04

Re: zeilennummerierung in abfragen

Beitrag von sibc »

du bist großartig, danke.

ich wusste, dass ich irgendwo was übersehen haben musste... zumindest bin ich froh, dass das der grund war, dass es eine erklärung gibt (die ich dir danke!), die einleuchtet (auch wenn sie wenig schmeichelhaft meine unkonzentriertheit ist). und vor allem: beginne ich langsam doch die struktur zu durchschauen. von abfrage und unterabfrage. und mache es mir insofern auch leichter nun als dass ich mir alles schön untereinander aufschreibe. absätze mache, um mir den aufbau vor augen zu führen von abfrage und unterabfrage... DANKE FÜR DEINEN LETZTEN POST!

sibc
Antworten