Zum Inhalt springen

SQL Statment der komplexeren Art


Darth_Zeus

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...