Sql oracle中价格和数量的总和
我有个问题。我需要计算我数据库中的订单总数。我有三张桌子:Sql oracle中价格和数量的总和,sql,database,oracle,sum,partition-by,Sql,Database,Oracle,Sum,Partition By,我有个问题。我需要计算我数据库中的订单总数。我有三张桌子: CREATE TABLE Potrawa( id_potrawy INT CONSTRAINT Potrawa_PK PRIMARY KEY, Nazwa VARCHAR2(150) NOT NULL, Cena NUMBER(6,2) NOT NULL, **(PRICE)** Opis VARCHAR(100) ); CREATE TABLE Zamowienie( id_zamowienia INT CONSTRAINT Zam
CREATE TABLE Potrawa(
id_potrawy INT CONSTRAINT Potrawa_PK PRIMARY KEY,
Nazwa VARCHAR2(150) NOT NULL,
Cena NUMBER(6,2) NOT NULL, **(PRICE)**
Opis VARCHAR(100)
);
CREATE TABLE Zamowienie(
id_zamowienia INT CONSTRAINT Zamowienie_PK PRIMARY KEY,
Ilosc INT, **(QUANTITY)**
Data DATE,
Ocena INT CONSTRAINT Ocena_Zamowienie_CHECK CHECK (Ocena IN (1, 2, 3, 4, 5)),
klient_id INT CONSTRAINT Zamowienie_Klient_FK REFERENCES Klient(id_klient),
pracownik_id INT CONSTRAINT Zamowienie_Pracownik_FK REFERENCES Pracownik(id_pracownik),
potrawy_id INT CONSTRAINT Zamowienie_Menu_FK REFERENCES Potrawa(id_potrawy),
typ_zamowienia_id INT CONSTRAINT Zamowienie_Typ_FK REFERENCES Typ_zamowienia(id_typ_zamowienia)
);
CREATE TABLE Menu(
restauracja_id INT NOT NULL CONSTRAINT Menu_Restauracje_FK REFERENCES Restauracja(id_restauracja),
potrawa_id INT NOT NULL CONSTRAINT Menu_Potrawa_FK REFERENCES Potrawa(id_potrawy),
CONSTRAINT Menu_PK PRIMARY KEY(restauracja_id, potrawa_id),
rodzaj_menu_id INT CONSTRAINT Menu_Rodzaj_Menu_FK REFERENCES Rodzaj_menu(id_rodzaj_menu)
);
我想写一个查询,显示每个订单的总和。我写了这样的东西,但不起作用。总数不是我所期望的
select distinct z.id_zamowienia as "zamowienie", z.potrawy_id as "Potrawa", p.nazwa as "Nazwa potrawy", z.ilosc as ILOSC,
count(*) over(partition by z.potrawy_id, z.id_zamowienia) * p.cena AS "CENA"
from potrawa p, menu m, zamowienie z
where p.id_potrawy = m.potrawa_id and m.potrawa_id = z.potrawy_id
有没有人能告诉我如何修复它,或者我如何用另一种方法来修复它(分区是必须的)。首先,最好使用正确的连接语法。是否要为该分区查找sum(Ilosc)而不是count(*)
select distinct
z.id_zamowienia as "zamowienie",
z.potrawy_id as "Potrawa",
p.nazwa as "Nazwa potrawy",
z.ilosc as ILOSC,
sum(Ilosc) over(partition by z.potrawy_id, z.id_zamowienia) * p.cena AS "CENA"
from
potrawa p
inner join menu m on p.id_potrawy = m.potrawa_id
inner join zamowienie z and m.potrawa_id = z.potrawy_id
请稍微解释一下你想要的输出