Вот мои таблицы:Есть ли способ суммировать произведение двух столбцов в MySQL?
-- receipts
| id | date |
|----|------------|
| 1 | 2016-12-20 |
| 2 | 2016-12-20 |
| 3 | 2016-12-21 |
-- purchases
| id | receipt_id | item | price | tax_rate |
|----|------------|-------------|-------|----------|
| 1 | 1 | apples | 3.89 | 0.000 |
| 2 | 1 | canned soup | 2.99 | 0.095 |
| 3 | 1 | candy bar | 0.99 | 0.095 |
| 4 | 2 | gas | 26.78 | 0.000 |
| 5 | 3 | chips | 3.99 | 0.095 |
| 6 | 3 | dip | 2.99 | 0.095 |
Я пытаюсь сделать запрос, который возвращает 3 элементов из таблицы квитанций с итогом, общим налогом, и итогом. Это то, что у меня есть для SQL.
SELECT
receipts.id,
receipts.date,
SUM(purchases.price) AS subtotal,
SUM(purchases.price * purchases.tax_rate) AS tax,
SUM(subtotal + tax_rate)
FROM receipts
RIGHT JOIN purchases ON purchases.receipt_id = receipts.id;
Конечный результат должен выглядеть следующим образом:
| id | date | subtotal | tax | total |
|----|------------|----------|------|-------|
| 1 | 2016-12-20 | 7.87 | 0.38 | 8.25 |
| 2 | 2016-12-20 | 26.78 | 0.00 | 26.78 |
| 3 | 2016-12-21 | 6.98 | 0.66 | 7.64 |
Какая у вас проблема? – shmosel
'SUM (subtotal + tax)' дает мне и ошибку, что говорит 'Unknown column 'subtotal' in 'field list'' Если я удалю тот, который у меня получается, я не получаю никаких ошибок, но он просто возвращает первую строку и суммирует весь столбец в одну строку. – MakPo
Вы не можете ссылаться на псевдоним поля в том же запросе. Вам нужно либо поместить его в подзапрос, либо повторить вычисление этого псевдонима. – Barmar