Я использую Prestashop 1.6.0.9, и я хочу получить из своей базы данных свои лучшие продукты в период с 01/01/2015 по 31/12/2015. Я написал запрос, но есть ошибка.Prestashop BestSelling Продукт SQL Query Snytax error
Вот мой запрос:
SELECT
SQL_CALC_FOUND_ROWS p.reference,
p.id_product,
pl.name,
ROUND(AVG(od.product_price/o.conversion_rate), 2) as avgPriceSold,
IFNULL(stock.quantity, 0) as quantity,
IFNULL(SUM(od.product_quantity), 0) AS totalQuantitySold,
ROUND(IFNULL(IFNULL(SUM(od.product_quantity), 0)/(1 + LEAST(TO_DAYS('01/01/2015'), TO_DAYS(NOW())) - GREATEST(TO_DAYS('31/12/2015'), TO_DAYS(product_shop.date_add))), 0), 2) as averageQuantitySold,
ROUND(IFNULL(SUM((od.product_price * od.product_quantity)/o.conversion_rate), 0), 2) AS totalPriceSold,
(
SELECT IFNULL(SUM(pv.counter), 0)
FROM ps_page pa
LEFT JOIN ps_page_viewed pv
ON pa.id_page = pv.id_page
LEFT JOIN ps_date_range dr
ON pv.id_date_range = dr.id_date_range
WHERE
pa.id_object = p.id_product
AND dr.time_start BETWEEN '01/01/2015 AND 31/12/2015'
AND dr.time_end BETWEEN '01/01/2015 AND 31/12/2015'
) AS totalPageViewed,
ps_product_shop.active
FROM ps_product p
LEFT JOIN ps_product_lang pl
ON (p.id_product = pl.id_product AND pl.id_lang = '3')
LEFT JOIN ps_order_detail od
ON od.product_id = p.id_product
LEFT JOIN ps_orders o
ON od.id_order = o.id_order
WHERE
o.valid = 1
AND o.invoice_date BETWEEN '01/01/2015 AND 31/12/2015'
GROUP BY od.product_id'
Вот сообщение об ошибке:
У Вас есть ошибка в вашем SQL синтаксиса; в руководстве, соответствует версии сервера MySQL для корректного синтаксиса использовать вблизи «) AS totalPageViewed, ps_product_shop.active ОТ ps_product р ЛЕВЫЙ» в строке 15
Я не комментировал логики только синтаксической ошибки. –