King Lully: mehrfache Abfage von Tabellen

Beitrag lesen

Du gehst mit

  
SELECT  
 Projekt_Firma_Firma_ID,  
 count(Projekt_Firma_Firma_ID) as Anzahl  
FROM  
 Projekt_Firma  
GROUP BY  
 Projekt_Firma_Firma_ID  
HAVING  
 (COUNT(Projekt_Firma_Firma_ID) > 1)  

auf die "n:m"-Tabelle um herauszufinden, welche Firmen mehr als ein Projekt haben. Vorausgesetzt wird dabei die EIndeutigkeit der Beziehung, also dass Projekte und Firmen nicht doppelt miteinander verknüpft sind und es nur so aussieht, als ob eine Firma mehr als ein Projekt hat.

Darum vielleicht besser (wir kennen ja nicht die Datenqualität ;):

  
SELECT  
 Projekt_Firma_Firma_ID,  
 count(Projekt_Firma_Firma_ID) as Anzahl  
FROM  
 (  
 SELECT DISTINCT  
  Projekt_Firma_Firma_ID,  
  Projekt_Firma_Projekt_ID  
 FROM  
  Projekt_Firma  
 )  
GROUP BY  
 Projekt_Firma_Firma_ID  
HAVING  
 (COUNT(Projekt_Firma_Firma_ID) > 1)  

Jetzt haben wir die Firma_ID(s), die wir referenzieren können in der Hauptabfrage:

  
SELECT  
 Firma_ID,  
 Firma_Name            -- u.s.w.  
FROM  
 Firma  
WHERE  
 (  
 Firma_ID in  
  (  
  SELECT  
   Projekt_Firma_Firma_ID  
  FROM  
   (  
   SELECT DISTINCT  
    Projekt_Firma_Firma_ID,  
    Projekt_Firma_Projekt_ID  
   FROM  
    Projekt_Firma  
   )  
  GROUP BY  
   Projekt_Firma_Firma_ID  
  HAVING  
   (COUNT(Projekt_Firma_Firma_ID) > 1)  
  )  
 )