Я хотел бы извлечь все предложения клиентов от каждого проекта и, если у них есть несколько предложений, мне бы хотелось получить среднее значение.Передать переменную в подзапрос
У меня есть следующий запрос:
SELECT
@projectid := projects.id AS projectid,
(SELECT
SUM(`offers`) FROM
(SELECT AVG(`price`) AS `offers`
FROM `sales`
WHERE `sales`.`projectid` = @projectid
AND `sales`.`active` = 'yes'
GROUP BY `sales`.`clientid`
) AS `average`
) AS `outstanding`
FROM projects
WHERE
projects.active = 'yes'
ORDER BY outstanding ASC
Моя проблема заключается в том, что @projectid является не передается в подзапрос, и я не понимаю, как я должен решить эту проблему.
Может кто-нибудь, пожалуйста, дать мне советы?
Я не поливаю весь ваш запрос, но почему бы не просто использовать 'projects.id' в подзапросе вместо' @ переменной projectid'? –
Поскольку это довольно сложный запрос, вы должны предоставить (тестовую) схему в http://sqlfiddle.com/ и четко показать в своем вопросе, каков ожидаемый результат запроса для схемы тестирования. –
Я не знаю, связано ли это с подзапросом перед остальной частью запроса, но когда я пытаюсь использовать project.id, он возвращает только ** # 1054 - Неизвестный столбец 'project.id' в 'where clause' ** –