Abfrage mit Parametern und Variablen (Gespeicherte Prozedur)

Beantwortet Abfrage mit Parametern und Variablen (Gespeicherte Prozedur)

  • Sonntag, 19. Februar 2012 15:14
     
     
    Hallo liebe Gemeinde,

    gerade stehe ich vor einem Problem und komme nicht so richtig weiter. Ich habe eine Tabelle namens "Objekte". Hinzu kommen drei weitere Tabellen "Bilder", "Intervalle" und "Dokumente". Diese 3 Tabellen sind über die ObjektID mit der Objekte-Tabelle verknüpft. Ich möchte nun eine Ansicht haben, die alle Datensätze der Objekte-Tabelle enthält und zusätzlich die Anzahl der Einträge der Bilder, Intervalle und Dokumente zur jeweiligen ObjektID. Leider bekomme ich es nicht hin, die Ansicht zusammenzubauen.

    Ich hoffe, ich konnte mein Anliegen verständlich ausdrücken. Ich bedanke mich im Voraus für Eure Hilfe!

    Gruß
    Marcus

    Der erste Tag, an dem ich nichts Neues lerne, wird der Tag sein, an dem sich der Deckel über mir schließt...

Alle Antworten

  • Sonntag, 19. Februar 2012 16:35
     
     Beantwortet Enthält Code

    Am einfachsten funktioniert es mit der OUTER APPLY methode, da man sich dann den ganzen GROUP BY ... Teil sparen kann.

    SELECT 
    	o.ObjektId,
    	o.col1, 
    	o.col2,
    	b.AnzBilder, 
    	i.AnzIntervalle, 
    	d.AnzDokumente
    FROM Objekte o
    OUTER APPLY
    (
    	SELECT COUNT(*) AS AnzBilder 
    	FROM Bilder b 
    	WHERE b.ObjektId=o.ObjektId
    ) b
    OUTER APPLY
    (
    	SELECT COUNT(*) AS AnzIntervalle 
    	FROM Intervalle i 
    	WHERE i.ObjektId=o.ObjektId
    ) i 
    OUTER APPLY
    (
    	SELECT COUNT(*) AS AnzDokumente 
    	FROM Dokumente d
    	WHERE d.ObjektId=o.ObjektId
    ) d;

    PS: da ich die Spaltennamen nicht kenne, hab' ich mir welche ausgedacht :-))

    MfG

    Lutz

    • Bearbeitet LMU92 Sonntag, 19. Februar 2012 16:35
    • Als Antwort markiert mjanz Sonntag, 19. Februar 2012 17:05
    •  
  • Sonntag, 19. Februar 2012 17:07
     
     
    Hallo Lutz,

    tausend Dank für die schnelle Antwort. Funtioniert genauso, wie ich es brauche!

    Gruß
    Marcus

    Der erste Tag, an dem ich nichts Neues lerne, wird der Tag sein, an dem sich der Deckel über mir schließt...