Summe bilden pro Index

#1
Guten Tag,

ich bin anfänglicher Anfänger und habe hier folgendes :

SQL:
select a.Aufnr, Anzahl*EtPreis as Gesamtpreis
from Auftrag a
inner join Montage m
on a.Aufnr=m.AufNr
inner join Ersatzteil e
on m.EtID=e.EtID
nun ist es so, das z.B. so etwas in der Tabelle steht:
Code:
Aufnr      Gesamtpreis

1             2

1             3

2             1

3             3

3             5
Nun möchte ich gern den Preis pro Aufnr haben.

Code:
Aufnr      Gesamtpreis

1             5

2             1

3             8
Wie könnte man dies realisieren?
Ich benutze MSSQL.

Vielen Dank im Voraus
 
#2
SQL:
SELECT Aufnr, SUM(Gesamtpreis) FROM Auftrag GROUP BY Aufnr;
Damit gruppierst du die Spalte "Aufnr" und addiert alle Gesamtpreise.
 
#4
Guten Tag,
ich habe nochmal eine Frage und zwar wie kann man in MSSQL einen Natural Join durchführen?
Ich weiß es gibt kein Schlüsselwort dafür, aber dies sollte ja anders noch machbar sein.

Vielen Dank im Voraus
 
Zuletzt bearbeitet:

asc

Well-Known Member
c-b Experte
#5
In MSSQL musst du das mit einem normalen JOIN machen wo du in der ON-Clause auf Gleichheit der Spalten (Werte) prüfst.
Zudem musst du in der SELECT Clause explizit auflisten welche Spalten von welcher Tabelle du möchtest.
 

asc

Well-Known Member
c-b Experte
#7
Ein Natural-Join ist ein Equi-Join mit dem Unterschied, dass doppelte Spalten-Namen gefiltert werden. Deswegen brauchst du die händische Filterung mittels SELECT um dieses Verhalten in MSSQL nachzustellen.
 
Oben