2012-04-12 2 views
0

я пытаюсь экспортировать свою сумму заказа по группе клиентов в PrestaShopSQL PrestaShop Статистика Всего заказов от клиентов группы

Это мой запрос для группы N ° 3, например:

SELECT ROUND(SUM(IFNULL(o.`total_paid_real`, 0)/cu.conversion_rate), 2) as totalMoneySpent 
FROM `ps_orders` o 
LEFT JOIN `ps_currency` cu ON o.id_currency = cu.id_currency 
LEFT JOIN `ps_customer` c ON c.id_default_group= 3 
WHERE o.valid = 1; 

ДРУГАЯ ВЕРСИЯ (ТОТ ЖЕ рЕЗУЛЬТАТ, сумма всех групп)

SELECT ROUND(SUM(IFNULL(o.`total_paid_real`, 0)/cu.conversion_rate), 2) as totalMoneySpent 
FROM `ps_orders` o 
LEFT JOIN `ps_currency` cu ON o.id_currency = cu.id_currency 
#LEFT JOIN `ps_customer` c ON c.id_default_group=3 
WHERE o.valid = 1 
AND o.id_customer IN(SELECT c.id_customer FROM `ps_customer` c WHERE c.id_default_group=3) 
; 

Моя проблема заключается в том, что c.id_default_group никогда не изменит результаты,

Спасибо за вашу помощь

+0

Я ничего PrestaShop не знаю, но вы можете предоставить некоторые примеры данных из таблиц и ожидаемого результата, и вы можете получить помощь от сообщества (даже от людей, которые не знают Prestashop):) –

ответ

1
SELECT c.group_id, ROUND(SUM(IFNULL(o.`total_paid_real`, 0)/cu.conversion_rate), 2) as totalMoneySpent 
FROM `ps_orders` o 
LEFT JOIN `ps_currency` cu ON o.id_currency = cu.id_currency 
0

После применения агрегатной функции SUM вы должны GROUP BY для того, чтобы получить суммарный результат для числа строк (в противном случае агрегат применяется индивидуально для каждой строки, побеждая свои собственные цели).

SELECT c.group_id, ROUND(SUM(IFNULL(o.`total_paid_real`, 0)/cu.conversion_rate), 2) as totalMoneySpent 
FROM `ps_orders` o 
LEFT JOIN `ps_currency` cu ON o.id_currency = cu.id_currency 
LEFT JOIN `ps_customer` c ON c.id_default_group= 3 
WHERE o.valid = 1 
GROUP BY c.group 
ORDER BY c.group 

предполагая group_id идентифицирует группу клиентов вы ссылаетесь в вопросе.

Смежные вопросы