Summe von Gruppen in Oracle 10g

hamburger83

Grünschnabel
Hallo zusammen,

ich erstelle gerade ein Report für ein Bestellsystem. Folgende Query:

select product
,category
,sum(anzahl)
group by msn,
b.cate

Ergebnis ist jetzt nach Produkt und Produktkategorie die Anzahl der Bestellungen pro Produkt und Produktkategorie.

Gibt es eine einfache Möglichkeit die Werte pro Produktkategorie und dann Produkt zu summieren?
Oder muss ich eine neuen Abfrage schreiben ohne "group by" und die Abfragen joinen?

Vielen Dank im voraus.

Hamburger
 
Hallo,

das könntest du mit den Analytic Functions rollup bzw. cube erledigen:
http://www.remote-dba.net/pl_sql/t_analytic_functions_oracle_rollup_cube.htm
schau mal hier:
SQL:
create table data(id int, itemid int, categoryId int, amount int);

insert into data values(1,1,1,1);
insert into data values(2,2,2,1);
insert into data values(3,3,2,1);
insert into data values(4,1,1,1);
insert into data values(5,1,1,1);
insert into data values(6,1,1,1);
insert into data values(7,2,2,1);
insert into data values(8,2,2,1);
insert into data values(9,1,1,1);
insert into data values(10,3,2,1);

SQL> select distinct categoryId,itemid,sum(amount) from data group by rollup(categoryId,itemid);

CATEGORYID     ITEMID SUM(AMOUNT)
---------- ---------- -----------
         2          3           2
         2          2           3
         1          1           5
         1                      5
         2                      5
                               10

ItemId Sum(Amount)
1    5
2    3
3    2

CategoryId Sum(Amount)
1    5
2    5

Gruß Tom
 
Zurück