Pytanie o zapytanie(suma)

0

Hej, mam takie zapytanie:
SELECT zamowienia.ID_Zamówienia,klienci.Imie,klienci.Nazwisko,SUM(książka.cena*zamowienia.ilosc),zamowienia.Czas_Dostawy,zamowienia.Odebrana FROM((zamowienia INNER JOIN książka ON zamowienia.ID_ksiązki=książka.ID_ksiązki) INNER JOIN klienci ON zamowienia.ID_Klienta=klienci.ID_Klienta)
Ale mam problem że sum sumuje wartosci ze wszystkich kolumn, a chciałbym żeby sumował tylko tam gdzie zamowienia.ID_zamówienia jest takie samo(id_zamowienia moze sie powtarzac w bazie)

Moge napisać tak, ale wtedy zsumuje mi tylko do jednego wiersza,a zalezaloby mi zeby zrobił to i wyswietlil wszystkie unikalne wiersze
SELECT zamowienia.ID_Zamówienia,klienci.Imie,klienci.Nazwisko,SUM(książka.cena*zamowienia.ilosc),zamowienia.Czas_Dostawy,zamowienia.Odebrana FROM((zamowienia INNER JOIN książka ON zamowienia.ID_ksiązki=książka.ID_ksiązki) INNER JOIN klienci ON zamowienia.ID_Klienta=klienci.ID_Klienta) WHERE zamowienia.ID_zamowienia='1'.
Mogłby mi pomóc jakiś dobry człowiek? :D

0
select * from orders;
+----+------+------+
| id | q    | p    |
+----+------+------+
|  1 |    4 |    5 |
|  2 |    2 |    8 |
|  3 |   10 |   26 |
+----+------+------+
select * from books;
+----+------+------+
| id | q    | p    |
+----+------+------+
|  1 |    1 |   15 |
|  2 |    3 |   25 |
|  3 |    3 |   45 |
+----+------+------+
select * from clients;
+----+------+
| id | dd   |
+----+------+
|  1 | xxx  |
|  2 | xua  |
|  3 | pje  |
+----+------+
SELECT `orders.id`, `clients.dd`, SUM(`books.q`*`books.p`) OVER(PARTITION BY `books.id`) FROM `orders`, `books`, `clients` WHERE `orders.id` = `books.id` AND `orders.id` = `clients.id`;
+----+------+--------------------------------------------------+
| id | dd   | sum(books.q*books.p) over(partition by books.id) |
+----+------+--------------------------------------------------+
|  1 | xxx  |                                               15 |
|  2 | xua  |                                               75 |
|  3 | pje  |                                              135 |
+----+------+--------------------------------------------------+

Jeśli zamiast OVER(PARTITION BY `books.id`) napiszesz OVER(), to wtedy rezultat będzie taki:

+----+------+-----------------------------+
| id | dd   | sum(books.q*books.p) over() |
+----+------+-----------------------------+
|  1 | xxx  |                         225 |
|  2 | xua  |                         225 |
|  3 | pje  |                         225 |
+----+------+-----------------------------+
0

To mam jeszcze ten problem że chyba moja baza nie zna takiej funkcji jak OVER. Korzystam z MariaDB10.3, i za każdym razem jakbym tego nie zbudował, nawet dla łatwych zapytań wyskakuje błąd:
Something is wrong in your syntax obok '(GROUP BY ID_Zamówienia) FROM zamowienia LIMIT 0, 25' w linii 1
Zapytanie : SELECT ID_ksiązki,SUM(ilosc) OVER(PARTITION BY ID_Zamówienia) FROM zamowienia
Baza:
ID_Zamówienia | ID_ksiązki | ilosc | ID_Klienta | Czas_Dostawy | Odebrana
1 1 1 1 2019-03-29 0
0 1 2 1 2019-03-29 0
2 2 2 2 2019-03-27 0

1 użytkowników online, w tym zalogowanych: 0, gości: 1