Hi katılmak, ancak hata döndürür:SQL hatası - Bir Sorgu ile çalışıyorum
sorgu şuna benzer:
SELECT
cd.*,
MIN(tmp.date_added) AS date_start,
MAX(tmp.date_added) AS date_end,
COUNT(tmp.order_id) AS `orders`,
SUM(tmp.products) AS products,
SUM(tmp.tax) AS tax,
SUM(tmp.total) AS total
FROM
(
SELECT
o.order_id,
(
SELECT SUM(op.quantity)
FROM `order_product` op
WHERE op.order_id = o.order_id
GROUP BY op.order_id
) AS products,
(
SELECT SUM(ot.value)
FROM `order_total` ot
WHERE ot.order_id = o.order_id AND ot.code = 'tax'
GROUP BY ot.order_id
) AS tax,
o.total,
o.date_added
FROM `order` o
WHERE o.order_status_id > '0'
AND DATE(o.date_added) >= '2016-01-01'
AND DATE(o.date_added) <= '2016-04-01'
GROUP BY o.order_id
) tmp
GROUP BY WEEK(tmp.date_added),
(
SELECT ROUND(sum(op.total)) AS total
FROM order_product op
JOIN order o ON o.order_id = op.order_id
JOIN product_to_category p2c ON op.product_id = p2c.product_id
WHERE o.date_added > '2016-01-01 00:00:00'
AND o.date_added < '2016-03-28 23:59:59'
AND o.order_status_id = 3
AND p2c.category_id = cd.category_id
) AS total
FROM category_description cd
JOIN category c ON c.category_id = cd.category_id
WHERE c.status=1
AND cd.language_id=1
ORDER BY cd.category_id ASC;
Ama, bana bu hata veriyor:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as total from category_description cd join category c on c.categ' at line 16
Birisi nasıl düzeltileceğini söyleyebilir, teşekkürler.
Neden sadece total' olarak 'ROUND (sum (op.total)) kullanılmasın? Alt sorgu, hiçbir amaca hizmet etmez. –
Sorgunuzu biçimlendirmeniz daha kolay okunacaksa yardımcı olabilir. –
İlk bakışta bu bir sözdizimi sorunundan daha fazlası gibi görünüyor, sorgunuz mantıklı değil. Dış seçmeninizin iki FROM maddesi varmış gibi görünüyor. –