打印時的數量沒問題,但是當 sum 時就數字錯誤?

SELECT ss.quan FROM `stock` as ss
          JOIN `order_record` as r ON r.order_id = ss.order_id
          WHERE ss.from = 'c'
          AND r.from = 'c'
          AND r.status = 'ing'
          AND ss.prod_id = 120
          GROUP BY ss.order_id

這是從數據庫撈出的:
clipboard.png

這個數字是沒問題的
但是當我改成這樣

SELECT sum(ss.quan) as num FROM `stock` as ss
          JOIN `order_record` as r ON r.order_id = ss.order_id
          WHERE ss.from = 'c'
          AND r.from = 'c'
          AND r.status = 'ing'
          AND ss.prod_id = 120
          // GROUP BY ss.order_id 

數字變成了 32
clipboard.png

如果加入 GROUP BY ss.order_id 一樣是 32
這很明顯有五個不同的 order_id
clipboard.png

這可能各位會很難理解
我只是想問說明明一開始數字是對的
當 sum 後就不對了
當使用 sum 要注意什麼事情?不能這樣直接 sum ?

阅读 1.8k
2 个回答

估计是因为你的ss.order_id有重复的数据, 相关数据都贴上来看看

你在外面一层进行计算验证一下不就好了。。肯定是你的数据和你的逻辑是有问题的。如果数据不对的话。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题