Hallo,
hat jemand von euch einen Tipp für mich für folgendes vereinfachtes Szenario:
Es gibt die drei folgenden Tabellen mit ihren Spalten und Datensätzen:
Gesellschafter
ID Nachname Vorname
1 Wurst Hans
2 Muster Max
Anteilscheine
ID GesID Wert
1 1 200
2 1 300
3 2 450
4 2 150
Ertragsanteile
ID GesID AntID Wert
1 1 1 20
2 1 1 30
3 1 2 50
4 1 2 40
5 2 3 70
6 2 3 90
7 2 4 15
8 2 4 150
Die Tabelle Gesellschafter ist mit der Tabelle Anteilscheine in einer 1:N Beziehung verbunden, d.h. zu einem Gesellschafter kann es mehrere Anteilscheine geben.
Die Tabelle Anteilscheine ist mit der Tabelle Ertragsanteile in einer 1:N Beziehung verbunden, d.h. zu einem Anteilschein kann es mehrere Ertragsanteile geben.
Die Aufgabenstellung ist nun die, dass ich mit einer Stored Procedure die Summe der Spalte „Wert“ der Tabelle „Anteilscheine“ addiert mit der Summe der Spalte „Wert“ der Tabelle „Ertragsanteile“ zu jedem einzelnen Gesellschafter abfragen muss.
Folgende Abfrage verwende ich zurzeit in einer Stored Procedure:
SELECT Gesellschafter.ID, Gesellschafter.Nachname, Gesellschafter.Vorname, SUM(Anteilscheine.Wert+Ertragsanteile.Wert)
AS GesellschafterSumme
FROM Gesellschafter INNER JOIN
Anteilscheine ON Gesellschafter.ID = Anteilscheine.GesID INNER JOIN
Ertragsanteile ON Gesellschafter.ID = Ertragsanteile.GesID AND Anteilscheine.ID = Ertragsanteile.AntID
GROUP BY Gesellschafter.ID, Gesellschafter.Nachname, Gesellschafter.Vorname
Als Ergebnis der Abfrage bekomme ich zwei Zeilen:
ID Nachname Vorname GesellschafterSumme
1 Wurst Hans 1140
2 Muster Max 1525
Erwartet hätte ich jedoch folgendes Ergebnis:
ID Nachname Vorname GesellschafterSumme
1 Wurst Hans 640
2 Muster Max 925
Ich habe mir stundenlang das Problem angesehen, komme jedoch zu keiner Lösung. Ist dies mit SQL nicht lösbar?
Ich freue mich über jede Antwort.
Gruß
Peter
hat jemand von euch einen Tipp für mich für folgendes vereinfachtes Szenario:
Es gibt die drei folgenden Tabellen mit ihren Spalten und Datensätzen:
Gesellschafter
ID Nachname Vorname
1 Wurst Hans
2 Muster Max
Anteilscheine
ID GesID Wert
1 1 200
2 1 300
3 2 450
4 2 150
Ertragsanteile
ID GesID AntID Wert
1 1 1 20
2 1 1 30
3 1 2 50
4 1 2 40
5 2 3 70
6 2 3 90
7 2 4 15
8 2 4 150
Die Tabelle Gesellschafter ist mit der Tabelle Anteilscheine in einer 1:N Beziehung verbunden, d.h. zu einem Gesellschafter kann es mehrere Anteilscheine geben.
Die Tabelle Anteilscheine ist mit der Tabelle Ertragsanteile in einer 1:N Beziehung verbunden, d.h. zu einem Anteilschein kann es mehrere Ertragsanteile geben.
Die Aufgabenstellung ist nun die, dass ich mit einer Stored Procedure die Summe der Spalte „Wert“ der Tabelle „Anteilscheine“ addiert mit der Summe der Spalte „Wert“ der Tabelle „Ertragsanteile“ zu jedem einzelnen Gesellschafter abfragen muss.
Folgende Abfrage verwende ich zurzeit in einer Stored Procedure:
SELECT Gesellschafter.ID, Gesellschafter.Nachname, Gesellschafter.Vorname, SUM(Anteilscheine.Wert+Ertragsanteile.Wert)
AS GesellschafterSumme
FROM Gesellschafter INNER JOIN
Anteilscheine ON Gesellschafter.ID = Anteilscheine.GesID INNER JOIN
Ertragsanteile ON Gesellschafter.ID = Ertragsanteile.GesID AND Anteilscheine.ID = Ertragsanteile.AntID
GROUP BY Gesellschafter.ID, Gesellschafter.Nachname, Gesellschafter.Vorname
Als Ergebnis der Abfrage bekomme ich zwei Zeilen:
ID Nachname Vorname GesellschafterSumme
1 Wurst Hans 1140
2 Muster Max 1525
Erwartet hätte ich jedoch folgendes Ergebnis:
ID Nachname Vorname GesellschafterSumme
1 Wurst Hans 640
2 Muster Max 925
Ich habe mir stundenlang das Problem angesehen, komme jedoch zu keiner Lösung. Ist dies mit SQL nicht lösbar?
Ich freue mich über jede Antwort.
Gruß
Peter