Gelöst Report: Status einer Person finden
-
Ich versuche gerade, mit den SQL Befehlen klarzukommen, um das hier angestoßene Problem zu lösen.
Wenn ich jetzt aber folgende Abfrage anstoße:select p.id ID, p.vorname Vorname, p.name Nachname, s.bezeichnung Status FROM cdb_person p left join cdb_status s on (s.id=p.status_id)
Bekomme ich folgende Fehlermeldung:
Wie komme ich denn an en Status einer Person?Ich habe dann nämlich vor, die Resultate aus dieser Abfrage mit Hilfe eines EXCEPT Befehls mit der Liste der App Nutzer zu Vergleichen um damit die Namen derer zu bekommen, die die App noch nicht haben
-
@djsudermann sagte in Report: Status einer Person finden:
select
p.id ID, p.vorname Vorname, p.name Nachname, s.bezeichnung Status
FROM cdb_person p
left join cdb_status s on (s.id=p.status_id)Die
status_id
gibt es nicht in dercdb_person
sondern in dercdb_gemeindeperson
-
@jziegeler Sind alle Nutzer sowohl in cdb_gemeindeperson als auch in cdb_person oder landen dort nur Gemeindemitglieder?
Gibt es irgendwo ne Übersicht der Tabellen die beim Erstellen der Reports helfen könnte?
(wir sind nicht self hosted) -
@jziegeler Vielen Dank für deine Hilfe.
Was mich jetzt wundert, warum folgende Abfrage:SELECT p.id ID, p.vorname Vorname, p.name Nachname FROM cdb_person p LEFT JOIN cdb_gemeindeperson g ON (p.id = g.id) LEFT JOIN cdb_status s on (g.status_id=s.id) WHERE s.mitglied_yn=1
immer noch Personen ausgibt, die eigentlich den Status "Freund" haben, welcher nicht als Mitglied deklariert wurde
-
Da der Support verständlicherweise keine individuellen sql abfragen betreut wollte ich mal in die Runde fragen, ob mir jemand helfen könnte. Ich vermute, dass es an der Reihenfolge der JOINs liegt. Kann das sein?
-
@djsudermann also bei mir funktioniert deine Abfrage wunderbar sind die Status wirklich richtig gesetzt?
-
@jziegeler
Eigentlich schon. Ich habe jetzt ein wenig tiefer in die Materie geguckt und mir ist folgendes aufgefallen:
Das ist der Status "Kind" Bei uns:
Jetzt hat beispielsweise meine Schwester mit der ID
Den Status Kind :
Trotzdem taucht sie mit der Abfrage dann folgendermaßen auf:
Auch als ich probiert habe, nur Spalten aus Gemeindeperson auszugeben wird zu ihrer ID Die Status ID 3 (Mitglied) angezeigt.
Habe ich einen Denkfehler oder klappt da irgendwas grundsätzlich nicht? -
@jziegeler Habs rausgefunden. Beim ersten LEFT JOIN musste ich das g.id durch g.person_id austauschen. Jetzt klappt es hervorragend. Teile die ganze Abfrage dann im entsprechenden Post