[英]MySQL multiple sum table
從下面的小提琴http://sqlfiddle.com/#!2/8f1d2/5我想總結交叉表作為下面的查詢,但是我遇到了sale_event的重復值的麻煩。 你有什么想法嗎
SELECT
a.province_id,
SUM(a.sale_event) AS sale_eventTotal,
SUM(d.order_fullpay) AS order_fullpayTotal
FROM
san_activites a
LEFT JOIN
sale_event_detail d
ON
a.san_activity_id = d.san_activity_id
WHERE
a.entry_date BETWEEN '2014-7-1' AND '2014-7-30'
GROUP BY a.province_id
只需刪除GROUP BY a.province_id
並運行對我GROUP BY a.province_id
的查詢即可。
在san_activity_id
上添加唯一索引 ,或在查詢時進行重復數據刪除:
SELECT
SUM(a.sale_event) AS sale_eventTotal,
SUM(d.order_fullpay) AS order_fullpayTotal
FROM
san_activites a
LEFT JOIN
(select * from sale_event_detail group by san_activity_id) d
ON
a.san_activity_id = d.san_activity_id
WHERE
a.entry_date BETWEEN '2014-7-1' AND '2014-7-30'
GROUP BY a.province_id
我能夠在下面獲得我認為您想要的結果。 結果帶回來
3 | 10
4 | 20
SELECT
SUM(a.sale_event) AS sale_eventTotal,
SUM(d.order_fullpayTotal) AS order_fullpayTotal
FROM
san_activites a
LEFT JOIN
(select SUM(order_fullpay) AS order_fullpayTotal, san_activity_id from sale_event_detail group by san_activity_id) d
ON
a.san_activity_id = d.san_activity_id
WHERE
a.entry_date BETWEEN '2014-7-1' AND '2014-7-30'
GROUP BY a.province_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.