Всем привет. Столкнулся с глупой проблемой. Но уверен что есть простое решение!
Есть запрос
SELECT SUM(AVG(accessories_supplyposition.Price) * (pack_accessories.Value * pack_accessories.Value_Thing))
FROM pack LEFT JOIN pack_accessories ON pack.Id = pack_accessories.Pack_Id
LEFT JOIN transaction_records_accessories ON transaction_records_accessories.Pack_Accessories_Id = pack_accessories.Id
LEFT JOIN accessories_balance ON transaction_records_accessories.Supply_Balance_Id = accessories_balance.Id
LEFT JOIN accessories_supplyposition ON accessories_balance.Accessories_SupplyPositionId = accessories_supplyposition.Id
WHERE pack.Id = 2000
GROUP BY pack_accessories.Id
Задача запроса: посчитать цену изделия учитывая среднюю стоимость материалов
Но вылазит ошибка Invalid use of group function.
Я примерно понимаю с чем это связано, но не знаю как это решить! Если убрать SUM() то почти все работает!
SELECT AVG(accessories_supplyposition.Price) * (pack_accessories.Value * pack_accessories.Value_Thing)
FROM pack LEFT JOIN pack_accessories ON pack.Id = pack_accessories.Pack_Id
LEFT JOIN transaction_records_accessories ON transaction_records_accessories.Pack_Accessories_Id = pack_accessories.Id
LEFT JOIN accessories_balance ON transaction_records_accessories.Supply_Balance_Id = accessories_balance.Id
LEFT JOIN accessories_supplyposition ON accessories_balance.Accessories_SupplyPositionId = accessories_supplyposition.Id
WHERE pack.Id = 2000
GROUP BY pack_accessories.Id
Вывод :
- 36.174600000000
- 280.645748400000
- 31.320000000000
Остается только суммировать эти значения!
Подскажите!