2012-08-16 27 views
0

我看到最后一行有错误。有人可以告诉我什么是替代?#1111 - 组功能错误的使用无效

INSERT INTO month_week_qty 
(
    site_id, cat_id, cat_name, scat_id, scat_name, sscat_id, sscat_name, duration, w_m, year, sum_qty 
) 
SELECT 
    c.site_id, NULL, NULL, NULL, NULL, NULL, NULL, 'month', MONTH(s.created_at), YEAR(s.created_at), ROUND(SUM(s.qty_ordered)) as qty 
FROM cat_products c, sku_qty_brand s 
WHERE (c.product_id = s.product_id) 
GROUP BY c.site_id, MONTH(s.created_at) 
ON DUPLICATE KEY UPDATE sum_qty = sum_qty + ROUND(SUM(s.qty_ordered)) 
+0

请加对你的问题也有'错误'! – 2012-08-16 08:46:49

回答

4

不能在ON DUPLICATE KEY UPDATE子句中使用聚集,但你可以把你的分组聚集在一个子查询,而不是(我省略了NULL列清晰度)

INSERT INTO month_week_qty 
(
    site_id, duration, w_m, year, sum_qty 
) 
SELECT 
    site_id, duration, w_m, year, qty 
FROM (
    SELECT 
     c.site_id, 'month' AS duration, MONTH(s.created_at) AS w_m, YEAR(s.created_at) AS year, ROUND(SUM(s.qty_ordered)) as qty 
    FROM cat_products c, sku_qty_brand s 
    WHERE (c.product_id = s.product_id) 
    GROUP BY c.site_id, MONTH(s.created_at) 
) AS t 
ON DUPLICATE KEY UPDATE sum_qty = sum_qty + t.qty 

+0

dezso,你摇滚!有效 – user1602639 2012-08-16 08:57:35

相关问题