Nochmal huhu,
bin zu nett für diese Welt;
CREATE TABLE tst\_artikel
(id NUMBER(9,0) NOT NULL
,bezeichnung VARCHAR2(255));
CREATE TABLE tst\_tabelle2
(artikel\_id NUMBER(9,0)
,betrag\_x NUMBER(9,2));
CREATE TABLE tst\_tabelle3
(artikel\_id NUMBER(9,0)
,betrag\_y NUMBER(9,2));
INSERT INTO tst\_artikel VALUES
(1,'Nummer 1');
INSERT INTO tst\_artikel VALUES
(2,'Nummer 2');
INSERT INTO tst\_artikel VALUES
(3,'Nummer 3');
INSERT INTO tst\_artikel VALUES
(4,'Nummer 4');
INSERT INTO tst\_artikel VALUES
(5,'Nummer 5');
INSERT INTO tst\_artikel VALUES
(6,'Nummer 6');
INSERT INTO tst\_tabelle2 VALUES
(1,15.8);
INSERT INTO tst\_tabelle2 VALUES
(1,17.8);
INSERT INTO tst\_tabelle2 VALUES
(2,20.8);
INSERT INTO tst\_tabelle2 VALUES
(2,20.7);
INSERT INTO tst\_tabelle2 VALUES
(4,15.8);
INSERT INTO tst\_tabelle2 VALUES
(4,15.8);
INSERT INTO tst\_tabelle2 VALUES
(6,15.8);
INSERT INTO tst\_tabelle2 VALUES
(6,15.8);
INSERT INTO tst\_tabelle3 VALUES
(1,99.50);
INSERT INTO tst\_tabelle3 VALUES
(1,120.50);
INSERT INTO tst\_tabelle3 VALUES
(5,99.50);
INSERT INTO tst\_tabelle3 VALUES
(5,1.50);
Nun die Abfragen:
SELECT a.artikel\_id, SUM(a.betrag\_x), SUM(b.betrag\_y)
FROM tst\_tabelle2 a
,tst\_tabelle3 b
WHERE b.artikel\_id(+) = a.artikel\_id
GROUP BY a.artikel\_id;
SELECT a.id
,bezeichnung
,NVL(
(SELECT SUM(b.betrag\_x)
FROM tst\_tabelle2 b
WHERE b.artikel\_id = a.id),0) AS summe\_x
,NVL(
(SELECT SUM(c.betrag\_y)
FROM tst\_tabelle3 c
WHERE c.artikel\_id = a.id),0) AS summe\_y
FROM tst\_artikel a;
SELECT a.bezeichnung
,NVL(SUM(c.betrag\_y),0)
,NVL(SUM(b.betrag\_x),0)
FROM tst\_artikel a
,tst\_tabelle2 b
,tst\_tabelle3 c
WHERE a.id = b.artikel\_id (+)
AND a.id = c.artikel\_id (+)
GROUP BY a.bezeichnung;
Wahrscheinlich ist die letzte die, die Du haben möchtest.
Gruß
Andreas