我需要从表中获取特定日期范围内的销售总额,并显示按星期几分组的结果。 (制作图表)
以下是我到目前为止所拥有的
SELECT DAYNAME(sale_date), SUM(total_price + total_tax)
FROM threewor_vend.vendsales AS s
WHERE s.register_id = '07709f8e-8d90-11e0-8e09-4040f540b50a'
AND sale_date >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
GROUP BY DAYOFWEEK(sale_date)
这将返回当天和每天的总销售额,这很棒。
问题是,如果每个销售中有多个项目,则“每个销售”中会有多行。因此,总价重复了多次。所以我不能只求取total_price的总和。
我只需要为每个唯一的sale_id获取total_price的总和。
例如
sale id | item | itemqty | item value | item total | total_price |
---1----|-drum-|-1-------|-60.00------|-60.0-------|-$230.00-----|
---1----|-uke--|-1-------|-170.00-----|-170.0------|-$230.00-----|
最佳答案
在MySQL中,您可以按sale_id
分组。这将消除重复项:
SELECT DAYNAME(sale_date), SUM(total_price + total_tax)
FROM (select s.*
from threewor_vend.vendsales s
group by sale_id
) s
WHERE s.register_id = '07709f8e-8d90-11e0-8e09-4040f540b50a'
AND sale_date >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
GROUP BY DAYOFWEEK(sale_date);
只要其他列(
sale_date
,total_price
,total_tax
和register_id
)在给定sale_id
的所有行上都相同,那么它将起作用。关于mysql - 获取DISTINCT第二列上第一列的总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16782820/