zeilennummerierung in abfragen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: zeilennummerierung in abfragen

Re: zeilennummerierung in abfragen

von sibc » Fr, 27.02.2015 17:37

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

Re: zeilennummerierung in abfragen

von RobertG » Fr, 27.02.2015 13:54

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

Re: zeilennummerierung in abfragen

von sibc » Do, 26.02.2015 23:38

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

Re: zeilennummerierung in abfragen

von RobertG » Do, 26.02.2015 16:06

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

Re: zeilennummerierung in abfragen

von sibc » Do, 26.02.2015 13:57

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.

Re: zeilennummerierung in abfragen

von sibc » Do, 26.02.2015 13:46

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.

Re: zeilennummerierung in abfragen

von RobertG » Do, 26.02.2015 07:45

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

Re: zeilennummerierung in abfragen

von sibc » Mi, 25.02.2015 22:45

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!

Re: zeilennummerierung in abfragen

von sibc » So, 22.02.2015 21:20

liebe dank für diesen input! und ich werde auch diesen testen!!! nur nicht mehr heute... (ich bin überhaupt sehr angetan von der prompten hilfe, die einem hier zuteil wird!)

ich wollte die laufnummer allerdings haben, weil ich zugleich mit der teilnehmerliste (namen incl. relevanten daten) auch die anzahl der teilnehmer auf einen blick haben möchte... und wie ich sehe, es funktioniert!

gruß!

Re: zeilennummerierung in abfragen

von F3K Total » So, 22.02.2015 19:36

Hallo sibc,
ich habe dieses Thema mitverfolgt, du siehst, laufende Nummern sind mit Base nicht gerade einfach umzusetzen.
Nur eine Idee:
Wolltest du eigentlich nur wissen, wieviele Teilnehmer ein Workshop hat?
Wenn ja, versuch mal diese etwas einfachere Abfrage:

Code: Alles auswählen

SELECT
    "Workshop ID_f",
    "Bezeichnung",
    COUNT( * ) AS "Teilnehmerzahl"
FROM
    "WORKSHOPS"
LEFT JOIN
    "TEILNEHMER_WORKSHOPS"
ON
    "Workshop ID" = "Workshop ID_f" 
GROUP BY
    "Bezeichnung",
    "Workshop ID_f"
Gruß R

Re: zeilennummerierung in abfragen

von sibc » So, 22.02.2015 19:16

FANTASTISCH!!!! RIESENDANK!
ganz glücklich bin ich dann, wenn ich das auch exakt verstehe warum das so funktioniert, aber das ist nun meine denknuss. schönen abend noch!

sibc

Re: zeilennummerierung in abfragen

von RobertG » So, 22.02.2015 18:44

Hallo sibc,

versuche einmal das Folgende:

Code: Alles auswählen

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"."Workshop ID_f" = 2 AND "TEILNEHMER"."Name"||"TEILNEHMER"."Vorname" <= "a"."Name"||"a"."Vorname") AS "lfdNr.",
"a"."Name", "a"."Vorname", "a"."Geb.Datum", "TEILNEHMER ELTERN"."Telefon" AS "Telefon Eltern", "TEILNEHMER ELTERN"."Email" AS "Email Eltern", "a"."Straße HausNr.|TürNr.", "a"."Postleitzahl", "a"."Land"
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"."Workshop ID_f" = 2
ORDER BY "a"."Name"||"a"."Vorname" ASC
Ist dann immer noch nicht eindeutig (wir hatten im Sportverein 2 Personen, die mit Vornamen und Nachnamen identisch waren - nicht verwandt; die wurde auch im Gespräch mit W...1 und W...2 bezeichnet), aber gegebenenfalls kann ja auch das Schlüsselfeld angehängt werden.

Gruß

Robert

Re: zeilennummerierung in abfragen

von sibc » So, 22.02.2015 18:00

TAUSEND DANK! es funktioniert!!!
(hoffentlich gelingt es, hinfort bei allen abfragen, diesen befehl richtig einzusetzten... :wink:)

ein kleines problem noch: bei gleichen (nach)namen (z.b. bei geschwisterkindern) vergibt die abfrage 2 gleiche nummern, ich muss also als 2. parameter den vornamen einfügen... ich versuchte deinen ursprünglichen 2. befehl mit der "ID" umzulegen ... es klappte nicht leider. dürfte ich nochmals um deine hilfe bitten?

mit grüßen aus wien!

sibc

Re: zeilennummerierung in abfragen

von RobertG » So, 22.02.2015 11:28

Hallo sibc,

habe jetzt von Rik die Datenbank erhalten. Er hatte dort mit einem etwas anderen Code das entsprechende Ergebnis erhalten.
ich habe den Code in meinem vorherigen Post angepasst. Die Unterabfrage hattte noch den Alias "a" an manchen Stellen. jetzt funktioniert die gesamte Abfrage wie gewünscht.

Gruß

Robert

Re: zeilennummerierung in abfragen

von sibc » So, 22.02.2015 11:03

auch der letztgesandte sql befehl liefert mir das gleiche ergebnis wie der erste... leider. wollte ich nur noch sagen.

lieben gruß sibc

Nach oben