0

最後の行にエラーがあることがわかりました。誰かが代替案を教えてもらえますか?

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 ) )
4

1 に答える 1

4

句で集計を使用することはできませんがON DUPLICATE KEY UPDATE、代わりにグループ化された集計をサブクエリに入れることができます。

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

(わかりやすくするために NULL 列は省略しました。)

于 2012-08-16T08:48:53.520 に答える