Mysql 多和表
从下面的fiddle中,我想将交叉表求和为下面的查询,但我遇到了sale_事件重复值的问题。你知道这件事吗Mysql 多和表,mysql,Mysql,从下面的fiddle中,我想将交叉表求和为下面的查询,但我遇到了sale_事件重复值的问题。你知道这件事吗 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.sa
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
只需按a.province\u 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
那么你希望得到什么结果呢?嗯。。。如果查看插入行的详细信息。。。我希望省id 2上的销售活动只有4而不是8,这是一个重复的值您的数据中似乎有重复的行。你是说你想忽略重复的吗?嗯。。。我需要按省份分组的朋友。亲爱的朋友,真的非常感谢,这就是我要找的人…嗨,朋友,非常感谢你的帮助。你几乎是对的,但就我所期望的20英镑的全薪订单而言。非常感谢你。