Goos Geschrieben 18. November 2004 Teilen Geschrieben 18. November 2004 was ist mit allen Projekten gemeint?? ich sehe kein Projekt Feld oder hab ich was überlesen? ich seh nur eine Projekt nummer und dazu immer einen Ort also der PK der tabelle PRO denk ich ma ein autowert. Man kann Projekte auch numerisch benamen, also koennte man hier Projektnummer = Projekt setzen. wenn mehrere Projektnummern einen Ort haben oder andersherum ist doch die ganze DB nichtmal in der Normalform. also kann man doch auch nur abfragen welche mitarbeiter an einem bestimmten ort arbeiten also ist das ganze eine normalisierte N:M beziehung oder lieg ich da falsch???? Die DB ist zwangsweise in der 3. Normalform, da alle Tabellen nur zwei Attribute enthalten und dadurch gar nichts anderes moeglich ist *g* :OD Zwischen Mitarbeiternummer und Projektnummer bestand also ne N:M Beziehung und das Ganze wurde n bissl normalisiert, ja. Du kannst nicht nur abfragen, welche Mitarbeiter an einem Ort arbeiten. Rueckwaerts kannst auch nachschauen, an welchen Orten ein Mitarbeiter arbeitet. Die Frage war aber, welche Mitarbeiter an ALLEN Projekten eines Ortes arbeiten. Hierzu ermittelt man zuerst die Mitarbeiter die an irgendeinem Projekt des gegebenen Ortes arbeiten. Diese gruppiert man dann um jeden Namen nur einmal zu erhalten. Dieser Gruppierung gibt man dann per Having noch die Bedingung mit, dass die Anzahl der jeweiligen Mitarbeiternummer (entspricht der Anzahl der Projekte an denen der jeweilige Mitarbeiter am gegeben Ort beteiligt ist) der Anzahl der Projekte in einem Ort (ermittelt per Subquery) entspricht. So zumindest mein Loesungsansatz Goos Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jasper Geschrieben 19. November 2004 Teilen Geschrieben 19. November 2004 auf einer oracle würde ich das mit nem inline view machen: select name from ( select ma.ma_name name, pro.pro_ort ort, count(*) anzpro from bez join ma on bez.bez_manr = ma.ma_nr join pro on bez.bez_pronr = pro.pro_nr group by ma_name, pro_ort ) where ort = 'ort' and anzpro = ( select count(*) from pro where pro_ort = 'ort' -j Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.