Oracle SQL abfrage über mehrere Tabellen

SmokeyD

Neuer Benutzer
Beiträge
4
Hallo ich habe hier als neuling gerade ein kleines verständnis problem, mir ist nicht genau bewusst wie ich folgende aufgabenstellung realisieren soll.
"(Gesamt-)Mengen aller Artikel pro Kunde"

dabei sieht die struktur wie folgt aus. ich hoffe ihr könnt mir helfen, danke


CREATE TABLE ARTIKEL
( artikelnummer NUMBER not null,
name VARCHAR2(255),
ek NUMBER,
vk NUMBER,
bestand NUMBER check(bestand >=0),
primary key(artikelnummer) );

CREATE TABLE KUNDE
( kundennummer NUMBER not null,
name VARCHAR(255),
primary key(kundennummer));

CREATE TABLE BESTELLUNG
(
bestellnummer NUMBER,
datum TIMESTAMP,
kundennummer NUMBER not null,
primary key(bestellnummer),
foreign key(kundennummer) references kunde);

CREATE TABLE POSITION
(
bestellnummer NUMBER,
artikelnummer NUMBER,
menge NUMBER not null,
foreign key(bestellnummer) references bestellung,
foreign key(artikelnummer) references artikel);
 
Werbung:
Was ist denn Dein Ansatz?

Um Dir nicht vorzusagen, hier mein Ansatz, aber verschlüsselt in ROT13 ;-) Da kann sich die NSA mal die Zähne dran ausbeißen ...

Code:
fryrpg x.xhaqraahzzre, x.anzr, fhz(c.zratr) sebz xhaqr x yrsg wbva orfgryyhat o ba (x.xhaqraahzzre=o.xhaqraahzzre) yrsg wbva cbfvgvba c ba (o.orfgryyahzzre=c.orfgryyahzzre) tebhc ol x.xhaqraahzzre, x.anzr;
 
select *
FROM position p INNER JOIN bestellung b
ON p.bestellnummer = b.bestellnummer
inner join kunde k on b.kundennummer = k.kundennummer;

ich versuche so über die einzelnen tabellen zu gehen allerdings ist mir nicht möglich die summe für die einzelnen kunden zu bilden.
 
Code:
SELECT   k.kundennummer,k.name,sum(p.menge) AS gesamt_menge
FROM   KUNDE k
INNER JOIN BESTELLUNG b
ON     k.kundennummer = b.kundennummer
INNER JOIN POSITION p
ON     b.bestellnummer = p.bestellnummer
GROUP BY k.kundennummer,k.name
...so in der Richtung. Wobei mir jetzt nicht ganz klar ist ob die "(Gesamt-)Mengen aller Artikel pro Kunde" wirklich auf die Menge abzielt, egal welcher Artikel, oder ob man auch noch nach Artikel gruppieren soll.
 
Code:
SELECT   k.kundennummer,k.name,sum(p.menge) AS gesamt_menge
FROM   KUNDE k
INNER JOIN BESTELLUNG b
ON     k.kundennummer = b.kundennummer
INNER JOIN POSITION p
ON     b.bestellnummer = p.bestellnummer
GROUP BY k.kundennummer,k.name
...so in der Richtung. Wobei mir jetzt nicht ganz klar ist ob die "(Gesamt-)Mengen aller Artikel pro Kunde" wirklich auf die Menge abzielt, egal welcher Artikel, oder ob man auch noch nach Artikel gruppieren soll.

Ja das soll noch auf Artikel gruppiert werden , dass ist für mich nicht ganz verständlich wie davon die Summen dann bilde ..
 
Eigentlich nicht anders nur nochmal nach artikelnummer getrennt:
Code:
SELECT k.kundennummer,k.name,p.artikelnummer,sum(p.menge) AS gesamt_menge
FROM KUNDE k
INNER JOIN BESTELLUNG b
ON k.kundennummer = b.kundennummer
INNER JOIN POSITION p
ON b.bestellnummer = p.bestellnummer
GROUP BY k.kundennummer,k.name,p.artikelnummer
 
Werbung:
Zurück
Oben