首页 > 解决方案 > 根据不同的order_id,mysql计算总数

问题描述

我需要根据我的 mysql 表中的不同 order_id 计算总和。在我的表中,我有订单购物车,其中 order_id 重复,因为每个订单都有多个项目,并且我还将总数保持在同一个表中。但是这里总价值是重复的,因为 order_id 也会根据购物车的不同物品重复。所以我想根据不同的 order_id 计算当天的总销售额。

$stmt = $linkID1->prepare("select sum(total) 
         from sales_data 
         where STR_TO_DATE(order_date, '%d-%m-%Y') between STR_TO_DATE('$today', '%d-%m-%Y') 
                and STR_TO_DATE('$today', '%d-%m-%Y') and store_code='$scode'");

在此查询中,它显示基于所有 order_id 的所有总数的总和,因为 order_id 正在重复,因此它占用所有总数,但我需要基于不同 order_id 的 dintinct total

标签: mysql

解决方案


试试这个:

 select sum(total) 
 from
 (
    select distinct order_id, total from sales_data 
    where STR_TO_DATE(order_date, '%d-%m-%Y') between STR_TO_DATE('$today', '%d-%m-%Y') 
       and STR_TO_DATE('$today', '%d-%m-%Y') and store_code='$scode'
 )

推荐阅读