Hi Leutz,
Ich habe drei Tabellen.
Die Tabellen Kathegorie1 und Person sind über die Tabelle Pers_b_Kath1 verknüpft.
Es gibt verschiedene Ereignisse und ich möchte alle Personen mit dem Datum deren jewiligen letzten Anwesenheit bei einem Ereignis in der Kathegorie 1 ausgeben.
Personen die noch keine Verknüpfung zu Kath1 haben also noch bei keinem Ereignis der Kath 1 waren sollen auch mit aufgelistet werden, das Datumsfeld dann aber entsprechend leer bleiben.
kleines Beispiel:
Zum Schluss soll eine Tabelle herauskommen in der steht:
Diese Tabelle besagt uns,
das Peter das letzte mal bei einem Ereignis der Kath1 am 11.12.2005 war, die Wertung = False ist
das Fritz das letzte mal bei einem Ereignis der Kath1 am 10.12.2005 war, die Wertung = True ist
das Gustav noch bei keinem Ereigniss der Kath1 dabei war.
Mit der folgenden Abfrage lese ich die Daten aus den Tabellen aus:
Diese Abfrage funktioniert auch wunderbar, doch wie kann ich noch die Daten die zusätzlich in der Verknüpfungstabelle also Pers_b_Kath1 drin stehen mit auslesen?
Wenn ich Pers_b_Kath1.Wertung mit in die Select Funktion schreibe, bekomme ich die Meldung, dass Pers_b_Kath1.Wertung nicht als Teil der Agregatfunktion eingeschlossen ist. Und wenn ich Pers_b_Kath1.Wertung mit in die Group By Klausel setze bekomme ich ja eine andere Ausgabe in der von jeder Person das letzte Ereignis von Kath1 mit Wertung = true und von derselben Person das letzte ereignis mit Wertung = false
Wie kann ich also die Daten der Verknüpfungstabelle ausgeben, ohne diese mit in die GOUP BY klausel aufnehmen zu müssen?
Gruß Sunfy
Ich habe drei Tabellen.
Code:
Kathegorie1 -------------------- Kath1_ID AutoWert Kath1_Datum Datum ... usw Person -------------------- Pers_ID AutoWert Pers_Name Text Pers_b_Kath1 -------------------- Pers_b_Kath1_ID AutoWert Pers_ID Zahl Kath1_ID Zahl Pers_b_Kath1_Wertung Ja/Nein Pers_b_Kath1_Bemerkung Text
Die Tabellen Kathegorie1 und Person sind über die Tabelle Pers_b_Kath1 verknüpft.
Es gibt verschiedene Ereignisse und ich möchte alle Personen mit dem Datum deren jewiligen letzten Anwesenheit bei einem Ereignis in der Kathegorie 1 ausgeben.
Personen die noch keine Verknüpfung zu Kath1 haben also noch bei keinem Ereignis der Kath 1 waren sollen auch mit aufgelistet werden, das Datumsfeld dann aber entsprechend leer bleiben.
kleines Beispiel:
Code:
Tabelle Person Tabelle Kathegorie 1 Tabelle Pers_b_Kath1 P_ID P_Name Kath1_ID Kath1_Datum PbK1_ID P_ID K_ID PbK_Wertung -------------- ---------------------- -------------------------------- 1 Peter 10 10.12.2005 20 1 10 True 2 Fritz 11 11.12.2005 21 1 11 False 3 Gustav 12 12.12.2005 22 2 11 True 23 2 12 True
Code:
P_ID P_Name Kath1_Datum Pbk_Wertung Pbk_Bemerkung ------------------------------------------------------- 1 Peter 11.12.2005 False ist zu spät gekommen 2 Fritz 12.12.2005 True war ok 3 Gustav
das Peter das letzte mal bei einem Ereignis der Kath1 am 11.12.2005 war, die Wertung = False ist
das Fritz das letzte mal bei einem Ereignis der Kath1 am 10.12.2005 war, die Wertung = True ist
das Gustav noch bei keinem Ereigniss der Kath1 dabei war.
Mit der folgenden Abfrage lese ich die Daten aus den Tabellen aus:
Code:
SELECT Max(Kathegorie1.Kath1_Datum) AS Kath1_Datum, Person.Pers_ID, Person.Pers_Name, Person.Pers_Vorname FROM Person LEFT JOIN (Pers_b_Kath1 LEFT JOIN Kathegorie1 ON Kathegorie1.Kath1_ID = Pers_b_Kath1.Kath1_ID) ON Person.Pers_ID = Pers_b_Kath1.Pers_ID GROUP BY Person.Pers_ID, Person.Pers_Name, Person.Pers_Vorname ORDER BY Max(Kathegorie1.Kath1_Datum);
Wenn ich Pers_b_Kath1.Wertung mit in die Select Funktion schreibe, bekomme ich die Meldung, dass Pers_b_Kath1.Wertung nicht als Teil der Agregatfunktion eingeschlossen ist. Und wenn ich Pers_b_Kath1.Wertung mit in die Group By Klausel setze bekomme ich ja eine andere Ausgabe in der von jeder Person das letzte Ereignis von Kath1 mit Wertung = true und von derselben Person das letzte ereignis mit Wertung = false
Code:
P_ID P_Name Kath1_Datum Pbk_Wertung -------------------------------------------- 1 Peter 10.12.2005 True 1 Peter 11.12.2005 False 2 Fritz 12.12.2005 True 3 Gustav
Gruß Sunfy