У меня есть следующая таблица:
select * from bestelldetails WHERE `Bestell-Nr` = 10870;
+------------+------------+-------------+--------+--------+
| Bestell-Nr | Artikel-Nr | Einzelpreis | Anzahl | Rabatt |
+------------+------------+-------------+--------+--------+
| 10870 | 35 | 18 | 3 | 0 |
| 10870 | 51 | 53 | 2 | 0 |
+------------+------------+-------------+--------+--------+
Теперь сначала я вычислил произведение каждой строки "Einzelpreis (= цена за штуку)" и "Anzahl (штуки)" следующим образом:
select *, Einzelpreis * Anzahl AS Rechnungssumme from bestelldetails WHERE `Bestell-Nr` = 10870;
+------------+------------+-------------+--------+--------+----------------+
| Bestell-Nr | Artikel-Nr | Einzelpreis | Anzahl | Rabatt | Rechnungssumme |
+------------+------------+-------------+--------+--------+----------------+
| 10870 | 35 | 18 | 3 | 0 | 54 |
| 10870 | 51 | 53 | 2 | 0 | 106 |
+------------+------------+-------------+--------+--------+----------------+
Но теперь я хочу СУММУ каждого набора данных "Bestell-Nr". Я пытался так:
select *, Einzelpreis * Anzahl AS Rechnungssumme from bestelldetails WHERE `Bestell-Nr` = 10870 GROUP BY `Bestell-Nr`;
+------------+------------+-------------+--------+--------+----------------+
| Bestell-Nr | Artikel-Nr | Einzelpreis | Anzahl | Rabatt | Rechnungssumme |
+------------+------------+-------------+--------+--------+----------------+
| 10870 | 35 | 18 | 3 | 0 | 54 |
+------------+------------+-------------+--------+--------+----------------+
Но это, очевидно, не работает. Внутри «Rechnungssumme» отображается только произведение ОДНОЙ записи, а не сумма всех значений, собранных из каждого набора данных.
В моем реальном случае использования будут десятки тысяч различных заказов, каждый со своим собственным "Bestell-Nr". Для каждого из этих заказов эта операция должна создать агрегированные строки, в которых необходимо рассчитать и правильно отобразить сумму продуктов каждой строки.