打印時的數量沒問題,但是當 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

這是從數據庫撈出的:
https://img3.mukewang.com/5c8f3a620001e7a800770148.jpg

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

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
https://img1.mukewang.com/5c8f3a630001cc1600760068.jpg

如果加入 GROUP BY ss.order_id 一樣是 32
這很明顯有五個不同的 order_id
https://img.mukewang.com/5c8f3a6400015ea900740152.jpg

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

猛跑小猪
浏览 387回答 2
2回答

慕哥9229398

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

斯蒂芬大帝

你在外面一层进行计算验证一下不就好了。。肯定是你的数据和你的逻辑是有问题的。如果数据不对的话。
打开App,查看更多内容
随时随地看视频慕课网APP