我需要从表中获取特定日期范围内的销售总额,并显示按星期几分组的结果。 (制作图表)

以下是我到目前为止所拥有的

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_datetotal_pricetotal_taxregister_id)在给定sale_id的所有行上都相同,那么它将起作用。

关于mysql - 获取DISTINCT第二列上第一列的总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16782820/

10-14 00:17