Seite 1 von 1
[gelöst] In Abfrage 2 Datenfelder unterscheiden, die sich auf 1 Tabelle beziehen?
Verfasst: Sa 23. Sep 2017, 19:49
von HansGerstenkorn
Hallo,
im Moment verrenne ich mich und komme nicht weiter, weil ich auch kaum SQL-Kenntnisse habe.
Ich möchte in einer Abfrage von zwei unterschiedlichen Feldern, die sich auf die Gleiche Tabelle beziehen, die Bezeichnungen und nicht die ID anzeigen. Bei einem Feld gelingt mir das natürlich, aber beim zweiten Feld weiß ich nicht wie, ohne das gleiche Ergebnis anzuzeigen.
Ich habe eine Tabelle, wo einer Person unterschiedliche Funktionen zugeordnet werden. Die Funktionen sind in einer Tabelle hinterlegt. Wie differenziere ich bei einer Abfrage?
Zur Info habe ich die Ansicht angehängt, die Namen sind ausgeblendet.
Vielen Dank für einen Tip, habe ich ein Beispiel, komme ich schon weiter

Re: In Abfrage 2 Datenfelder unterscheiden, die sich auf 1 Tabelle beziehen?
Verfasst: So 24. Sep 2017, 15:53
von RobertG
Hallo Hans,
füge die Tabelle "Funktion" ein 2. Mal hinzu. Sie bekommt als 2. Tabelle automatisch den Alias "Funktion_1" zugewiesen. Verbinde dann die "ID" von "Funktion_1" mit "Funktion-ID-2" von der Tabelle "Status". Jetzt kannst Du aus "Funktion_1" "Bezeichnung" hinzufügen.
Gruß
Robert
Re: In Abfrage 2 Datenfelder unterscheiden, die sich auf 1 Tabelle beziehen?
Verfasst: So 24. Sep 2017, 23:31
von HansGerstenkorn
Hallo Robert,
herzlichen Dank, für den Wissenden ganz einfach, aber darauf, dass man eine Tabelle noch einmal neu einfügt, bin ich einfach nicht gekommen, super, ein ganz toller Start in die neue Woche, dann kann ich morgen gleich meinen Jahresstatus angehen....
Viele Grüße zum Wochenanfang

Hans
Re: In Abfrage 2 Datenfelder unterscheiden, die sich auf 1 Tabelle beziehen?
Verfasst: Di 26. Sep 2017, 11:47
von HansGerstenkorn
Hallo Robert,
ich habe zu früh frohlockt, jetzt wird zwar die Bezeichnung im Klartext angezeigt, aber ich bekomme nur eine kleine Auswahl und nicht die ganze Tabelle angezeigt.... Hast Du eine Idee?
Viele Grüße

Hans
Re: In Abfrage 2 Datenfelder unterscheiden, die sich auf 1 Tabelle beziehen?
Verfasst: Di 26. Sep 2017, 15:11
von RobertG
Hallo Hans,
Problem für mich: Ich mache so etwas immer direkt in SQL, nicht in der GUI.
1. Fällt mir auf, dass bei Dir bei "Funktion" an der "ID" einfach grafisch ein weiterer 'Ausgang' links zu sehen ist. Woher der kommt kann ich nicht sagen.
2. Kann es sein, dass nicht alle eine Funktion-ID-2 haben? Dann müsstest Du die Verbindungseigenschaften bearbeiten. Auf die verbindende Linie gehen und dort die Eigenschaften aufrufen. So einstellen, dass alle Datensätze von "Status" angezeigt werden, auch wenn keine "Funktion_1" dazu existiert.
Gruß
Robert
Re: In Abfrage 2 Datenfelder unterscheiden, die sich auf 1 Tabelle beziehen?
Verfasst: Di 26. Sep 2017, 20:27
von HansGerstenkorn
Hallo Robert,
Danke, dass Du Dich darum kümmerst.
zu 1.
ich weiß auch nicht, was der Strich links sollte, bei erneutem Aufruf war er noch da, zeigte aber nirgends hin, ich habe ihn angeklickt -sah aus wie eine Verbindung in's Nirwana - und dann gelöscht, alles jedoch unverändert.
zu 2.
alle haben in "Funktion_2" einen Wert, bis auf 4 haben allerdings alle den Wert "0":

- Wert.jpg (58.43 KiB) 4309 mal betrachtet
hier die Abfrage in SQL:
SELECT "Status"."ID" AS "ID", "Bereich"."Bezeichnung" AS "Abteilung/Bereich", "Funktion"."Bezeichnung" AS "Funktion-1", "Funktion_1"."Bezeichnung" AS "Funktion-2", "Status"."FunktionEnde" AS "FunktionEnde", "Status"."Verpflichtungserklärung" AS "Verpflichtungserklärung" FROM "Status", "Bereich", "Funktion", "Funktion" AS "Funktion_1" WHERE "Status"."Bereich-ID" = "Bereich"."ID" AND "Funktion"."ID" = "Status"."Funktion-ID-1" AND "Funktion_1"."ID" = "Status"."Funktion-ID-2"
Hoffentlich helfen Dir diese Angaben, ansonsten bitte anfordern.
"Bereinigte" DB ist angehängt...

)) Hans
Re: In Abfrage 2 Datenfelder unterscheiden, die sich auf 1 Tabelle beziehen?
Verfasst: Mi 27. Sep 2017, 16:37
von HansGerstenkorn
Hallo Switi,
mein Problem ist, dass ich in der Abfrage "Abfrage_Status_Alle_Funktion_1-FEHLER" (siehe angehängte DB - aus meiner letzten Antwort an Robert) nur einen Teil angezeigt bekomme. Ich müsste imgrunde alle Datensätze angezeigt bekommen, nur eben in den Spalten nicht die Ziffern der Beziehung "Funktion" sondern eben die Bezeichnung. Das klappt ausgerechnet bei dieser Abfrage nicht. Ich möchte einfach alle Musternamen angezeigt bekommen mit allen Funktionen_1 und mit allen Funktionen_2. Wenn Du Dir die Tabelle Status ansiehst, siehst Du dass überall Werte für die Beziehungen vorhanden sind, aber die Bezeichnung der Werte klappt hier ausgerechnet nicht, bei den Spalten mit der JaNein-Beziehung ist das kein Problem....
Sicher weißt Du Rat.
Vielen Dank und Gruß

Hans
Re: In Abfrage 2 Datenfelder unterscheiden, die sich auf 1 Tabelle beziehen?
Verfasst: Mi 27. Sep 2017, 18:23
von RobertG
Hallo Hans,
wenn Du versuchen würdest, unter Extras > Beziehungen die Beziehung zwischen der Tabelle Funktion und Status.Funktion-ID-2 zu definieren, dann würdest Du den Fehler bemerken: '0' ist in Deiner Tabelle "Funktion" nicht belegt. Also werden alle Datensätze mit '0' als Funktion-ID-2 nicht angezeigt.
Mach' einfach das Folgende unter Extras > SQL:
Das sorgt dafür, dass eine ID 0 erstellt wird und diese mit einem leeren Textfeld verbunden ist.
Gruß
Robert
Re: In Abfrage 2 Datenfelder unterscheiden, die sich auf 1 Tabelle beziehen?
Verfasst: Mi 27. Sep 2017, 18:54
von HansGerstenkorn
Hallo Robert,
ich glaube, ich bin erst jetzt dahinter gekommen, was mit
"2. Kann es sein, dass nicht alle eine Funktion-ID-2 haben? Dann müsstest Du die Verbindungseigenschaften bearbeiten. Auf die verbindende Linie gehen und dort die Eigenschaften aufrufen. So einstellen, dass alle Datensätze von "Status" angezeigt werden, auch wenn keine "Funktion_1" dazu existiert."
gemeint hast. Ich habe es jetzt hinbekommen, indem ich die Möglichkeiten des Typs einfach durchprobiert habe.
Ich weiß aber trotzdem nicht, wie ich feststelle, dass die "0" nicht existiert, wenn ich die Beziehung definiere, für mich ist definieren lediglich die Linie herzustellen... - sicher sehe ich das zu einfach....
trotzdem vielen Dank für die Mühe und viele Grüße

Hans
Re: In Abfrage 2 Datenfelder unterscheiden, die sich auf 1 Tabelle beziehen?
Verfasst: Mi 27. Sep 2017, 20:51
von RobertG
Hallo Hans,
wenn Du eine Beziehung definieren willst, dann ist dies nicht möglich, wenn zu einem Fremdschlüssel kein entsprechender Primärschlüsselwert vorhanden ist. Du hattest lauter 0-Werte in der Tabelle "Status" im Feld "Funktion-ID-2". Dazu gab es keine Entsprechung. Ist die Beziehung unter Extras > Beziehungen erst einmal definiert, so kannst Du nie einen Wert im Feld "Funktion-ID-2" eintragen, der als "ID" in "Funktion" nicht vorkommt.
Gruß
Robert