Reportmanager - Bericht mit Abhängigkeiten
-
Hallo zusammen,
ich möchte mit dem Reportmanager einen Bericht erstellen, der mir alle Mobiltelefone mit deren Nummern ausgibt und die dazugehörigen Mitarbeiter (eigenes Objekt unter dem Punkt >Andere), die das entsprechende Telefon gerade besitzen.
Ich habe mich etwas mit der DB Struktur beschäftigt und habe herausgefunden, dass die relevanten Daten für so einen Bericht in der Tabelle isys_obj stehen. Um die Abhängigkeit zwischen Mitarbeiter und Mobiltelefon herauszubekommen benötige ich die Tabelle isys_dependency.
Mein Problem ist jetzt folgendes:
Ich möchte den Bericht in der Form:
MITARBEITER TELEFONNUMMER
Mitarbeiter A 1234567890
Mitarbeiter B 0987654321
….Diese Daten befinden sich beide in der Spalte isys_obj__title der Tabelle isys_obj.
Mein derzeitger SQL Befehl sieht wie folgt aus: (Type ID 32 sind Mobiltelefone)
SELECT O.isys_obj__title AS MITARBEITER, O.isys_obj__title AS NUMMER
FROM isys_dependency AS D
RIGHT JOIN isys_obj AS O
ON D.isys_dependency__isys_obj__id__master = O.isys_obj__id
WHERE O.isys_obj__isys_obj_type__id = 32Damit gibt er mir nun natürlich 2 mal die identischen Werte für beide Spalten meines Reports aus. Ist es denn überhaupt möglich, zwei mal das gleiche Feld einer Tabelle auszugeben, aber zu unterschiedlichen Konditionen? (Also einmal Mitarbeiter - über ID, und dann Mobiltelefone über eine andere ID)
Mache ich irgendetwas falsch oder ist das generell nicht möglich?
Danke und LG,
Fisi. -
Also, soweit ich das verstanden habe, ist
1. Der Titel der Mobiltelefone gleich der Telefonnummer
2. Der Titel des Mitarbeiters gleich dem Namen
3. Die Verbindung über eine Abhängigkeit definiert, wobei die Mitarbeiter abhängig sind von den MobiltelefonenUnter diesen Voraussetzungen müsste der Report folgendermaßen aussehen:
SELECT mob.isys_obj__title AS 'Telefonnummer', mit.isys_obj__title AS 'Mitarbeiter' FROM isys_obj mob INNER JOIN isys_dependency ON isys_dependency__isys_obj__id__master = mob.isys_obj__id INNER JOIN isys_obj mit ON mit.isys_obj__id = isys_dependency__isys_obj__id__slave INNER JOIN isys_obj_type mobtype ON mob.isys_obj__isys_obj_type__id = mobtype.isys_obj_type__id INNER JOIN isys_obj_type mittype ON mit.isys_obj__isys_obj_type__id = mittype.isys_obj_type__id WHERE mobtype.isys_obj_type__const = 'C__OBJTYPE__CELL_PHONE_CONTRACT' AND mittype.isys_obj_type__const = '<konstante des="" objekttyps="" mitarbeiter="">'</konstante>
wobei man <konstante des="" objekttyps="" mitarbeiter="">entsprechend Deiner Definition in der Tabelle isys_obj_type ersetzen muss. Der Trick besteht halt darin die Tabelle isys_obj für beide Objekttypen seperat zu referenzieren.</konstante>
-
Vielen Dank, das hat funktioniert!
Ich musste nur noch die Einträge isys_dependency__isys_obj__id__master und isys_dependency__isys_obj__id__slave vertauschen, also:
... INNER JOIN isys_dependency ON isys_dependency__isys_obj__id__slave = mob.isys_obj__id INNER JOIN isys_obj AS mit ON mit.isys_obj__id = isys_dependency__isys_obj__id__master ...
Obwohl, wie du geschrieben hast, der Mitarbeiter vom Mobiltelefon abhängig ist.
Also danke nochmal, hat sehr geholfen
LG, Fisi,