Einschränkung der Auswahl aus verknüpften Tabellen
Hallo Zusammen,
ich habe folgende Frage: Ich möchte ganz gerne die Auswahl in einem Verknüpfungsfeld einschränken. Zunächst zur tabellenstruktur: Ich habe drei Tabellen: "Manager", "Personen" und Teilnahmen". Jeder Eintrag im "Manager" legt ein Team an, dem ich Personen zuweise. Da eine Person in verschiedenen Teams sein kann, nutze ich dafür die Tabelle "Teilnahmen" um die "Personen" mit dem "Manager" zu verknüpfen. Ich möchte nun die Auswahl einschränken, denn ich möchte nur Personen auswählen können, die bisher noch nicht in dem Team sind. Ich habe bisher versucht (wobei a(Teilnahmen) und b(Personen) ist):
a.Manager.Teilnahmen.Personen != b
oder
a.Manager.Teilnahmen.Personen.Nr != b.Nr
Das klappt aber, wie ihr euch schon denkt, leider nicht. Ich habe auch drum herum schon vieles versucht, komme aber einfach zu keinem Ziel. Ich komme hier einfach gedanklich nicht weiter...
Was z.B. gut klappt ist :
a.Manager.Geschlecht = b.Geschlecht
Danke schon mal für eure Hilfe!
LG
Stephan
9 Antworten
-
Keine Ideen?
-
Hm,
wenn Du Dir aus der Tabelle "Manager" ein Feld für den Vergleich rausgreifst, könnte evtl. das hier klappen:
not contains(concat(b.Teilnahmen.Manager.Feld1),a.Manager.Feld1)
lg, Torsten
-
Stimmt, das müsste gehen. Ich hatte auch überlegt, bin aber nicht so schnell drauf gekommen.
-
Danke euch!
Die Idee hatte ich tatsächlich auch schon, jedoch sagt Ninox, "Die Funktion ist nicht definiert contains(String,nid)
-
stopp, gelöst: "nid" heißt ja, dass die beiden Teile nicht gleich sind, oder? Habe auf jeden fall jetzt
not contains(concat(b.Teilnahmen.Manager.Feld1),concat(a.Manager.Feld1))
geschrieben und es klappt!
Mal wieder: Herzlichen Dank euch beiden und Dir Torsten für die Lösung!!!Liebe Grüße
Stephan -
"nid" steht m. W. für einen Wert vom Typ ID. "concat" erzeugt aber einen String, weshalb auch contains() einen String als Vergleichswert erwartet. "Feld1" könnte deshalb z. B. der eindeutige Name des Managers o. ä. sein.
Um auch wenigstens ein bisschen was beizutragen ... ;)
-
warum irgendein Feld als "nid" interpretiert wird, erschließt sich mir nicht. Ich bin offengestanden davon ausgegangen, dass "Feld1" vielleicht tatsächlich der Name des Managers wäre (also ein Feld des Typs "Text"), so dass
not contains(concat(b.Teilnahmen.Manager.Name),a.Manager.Name)
eigentlich schon zum Erfolg geführt hätte.
lg, Torsten
-
Na ja, vermutlich hat Stephan es ohne "Feld1" versucht, also nur IDs eingelesen. Dann kommt es zu genau der Fehlermeldung. Deshalb war deine Idee goldrichtig.
-
Hallo Zusammen,
Ja, so war es! Danke für die Aufklärung @Copytexter!!!Liebe Grüße
Content aside
- vor 4 JahrenZuletzt aktiv
- 9Antworten
- 865Ansichten