JCB: MS SQL 2005: SUM-Funktion und "geJOINte" Tabellen

Beitrag lesen

Hi!

verwende Subselects. Wie dies in Deinem speziellen Fall aussieht, ist von Deinen Tabellen abhängig. Ohne genauere Angaben kann man Dir nicht weiterhelfen.

Beispieltabellen (aufs nötigste reduziert) mit ein paar Beispieldatensätze und das gewünschte Resultat mit der Begründung, warum dies das Resultat ist, wären hilfreich.

Nur Unterabfragen innerhalb der SUM-Funktion (Aggregatfunktion) gehen leider nicht.

Ok, hier ein paar Beispieldatensätze. TAB_2 ist über die ParentID mit TAB_1 und TAB_3 ist ebenfalls über die ParentID mit TAB_2 verknüpft. TAB_3 hat also keine direkte Relation zu TAB_1.

TAB_1:
ObjektID  Beschreibung
1         Hund
2         Katze
3         Maus

TAB_2:
ObjektID   ParentID   Anzahl
1          1          1
2          1          2
3          2          3
4          3          4

TAB_3:
ObjektID   ParentID   WertK
1          1          55
2          1          0
3          2          4.3
4          2          33
5          2          0
6          3          0
7          4          0
8          4          0

So, wenn ich jetzt TAB_3 erstmal außer acht lasse und mit meiner Abfrage gruppiert nach TAB_1 TAB_2.Anzahl summiere, dann erhalte ich z.B. für TAB_1.ObjektID = 1 (Hund) als Summe 3. Vollkommen korrekt. JOINe ich TAB_3, erhalte ich 8 als Summe. Also quasi die Summe von dem Produkt TAB_2.Anzahl*COUNT(TAB_3.ObjektID). Und TAB_3 brauch ich, um u.a. die Summe der Spalte "WertK" für die Objekte in TAB_1 zu berechnen. Für Hund wäre dies dann grob ausgedrückt SUM(WertK) -> 92,3.

Gruß
Jan