Hallo,
ich werd mit SQL einfach nicht grün. Ich bin irgendwie für die Abfragen einfach zu doof oder ich geh falsch an die Sache ran.
Ich hab drei Tabellen.
In der ersten stehen Informationen zu Firmen drin. Inhalt egal
Zweite Tabelle beinhaltet Infos zu Konten die in relation zu der Tabelle 1 stehen (wie Kontoname, Eröffnung, etc).
In der dritten Tabelle stehen Werte, welche Buchungen für das jeweilige Konto (aus Tabelle 2) geführt wurden.
Ich möchte nur, daß ich eine Liste kriege und zwar mit folgenden Punkten:
- Name und Eröffnung des Kontos aus Tabelle 2
- Name der Firma für das jeweilige Konto
- Die „Gesamtsumme“ der Kontobewegungen für das jeweilige Konto (z.B. Betrag ein: 6€, Betrag aus -4€ -> soll ausgegeben werden: 2€).
Punkt 1 und 2 hab ich ja hingekriegt, aber Punkt 3 pack ich nicht. Kann mir jemand bitte helfen. Danke im voraus…
gruß Euer Olli
Hallo,
- Die „Gesamtsumme“ der Kontobewegungen
wenn man so etwas hört (summe, durchschnitt, maximum usw) sollte man immer an gruppierung denken. einfach die 3. tabelle mit „hinzu-joinen“ und am ende der abfrage „GROUP BY kontoname“ schreiben (oder wie das feld bei dir heißt). zusätzlich muss in die ausgabeliste dann noch „SUM(betrag)“ (o.ä.) rein.
dabei ist zu beachten, dass dann nur noch die spalte ausgegeben werden kann, nach der gruppiert wurde. um dies um weitere spalten zu erweitern, müssen diese einfach an die GROUP BY-klausel angehängt werden (durch komma getrennt), und schon können die auch in der ausgabeliste stehen…
wenn dir das nicht weiterhilft: schreib am besten mal die drei relationsschemata sowie die fremdschlüsselbeziehungen hier rein, dann kann man das auch konkret am beispiel machen 
mfg, micha
Guten Morgen Micha,
also die drei Tabellen sind wiefolgt aufgebaut:
**firma kontoinfo kontoblatt**
PK firma\_ID PK kontoinfo\_ID PK kontoblatt\_ID
firma FK firmaID FK kontoinfoID
plz name datum
ort eroeffnung betrag
PK ist in dem Fall der Primarykey und FK der Fremdschlüssel (angelehnt an das PK der jeweiligen Tabelle).
Wie gesagt, kontoinfo beinhaltet die Informationen zu einem Konto, sowie die ID der dazugehörigen Tabelle firma (damit ich weiß, welche Firma das Konto gehört) und möchte dann den dazugehörigen Gesamtbetrag von kontoblatt.betrag haben.
Mit Inner Join scheinen wohl die meisten irgendwie Probleme zu haben *g*. Ein Kollege hat das versucht mit WHERE zu machen, aber er hat es auch nicht geschafft.
Gruß Olli
guten morgen! 
firma kontoinfo kontoblatt
PK firma_ID PK kontoinfo_ID PK kontoblatt_ID
firma FK firmaID FK kontoinfoID
plz name datum
ort eroeffnung betrag
dann ist bei dir kontoinfo.kontoinfo_ID aber sowas wie autoincrement, oder? ich hätte da wahrscheinlich eher (kontoinfo_ID, firmaID) als PK definiert, dann ist die sache auch eindeutig und jede firma kann quasi mit kontoinfo_ID=1 (oder 0) beginnen… bei kontiblatt.kontoblatt_ID wird das noch deutlicher, aber das ist sicherlich implementierungssache 
select
f.firma as Firmenname,
k.name as Kontoname,
k.eroeffnung,
SUM(b.betrag) as Summe
from
firma f,
kontoinfo k,
kontoblatt b
where
(f.firma\_ID = k.firmaID) AND (k.kontoinfo\_ID = b.kontoinfoID)
group by
k.kontoinfo\_ID,
k.name,
f.firma,
k.eroeffnung;
ich hoffe das ergibt die gewünschte ausgabe 
mfg, micha
Hallo Micha,
das ist es. Ich bin baff
Dank dir echt für die Hilfe. ich weiß auch nicht, SQL und ich haben uns noch nie gemocht, aber vielleicht geh ich nur falsch an die Sache ran 
Muß mir deine Lösung nochmals in Ruhe anschauen.
Vielen Dank,
Gruß Olli