mysql對多條記錄先判斷加減再求和的解決辦法

2021-08-22 03:16:20 字數 677 閱讀 2206

最近在做關於售、退的統計時,想要一條sql就解決問題,通過網上查詢相關資料,得到以下幾種方式:

舉個栗子:表資料如下[pay_type欄位,1代表 售 2代表 退]

id     pay_type     pay_value

1          1                 20

2          1                 50

3          2                 30

第一種方式:

使用if條件判斷:

select sum( if( pay_type = 1, pay_value, -1 * pay_value ) ) as pay from table;

第二種方式:

使用case when語句判斷:

select sum( pay_value * ( case pay_type when 1 tnen 1 else -1 end ) ) as pay from table;

第三種方式:

通過用cos()函式對pi()的整數倍求值判斷,但是這種情況對上述例子不適用,僅供參考。

select sum( pay_value * ( cos( pi() * pay_type) ) ) as pay from table;

以上就是我找到的三種方式,有其他方式請不吝指教。

MySQL插入多條記錄

原文 nsert into users name,age values 姚明 25 比爾.蓋茨 50 火星人 600 上面的insert 語句向users表中連續插入了3條記錄。值得注意的是,上面的insert語句中的values後必須每一條記錄的值放到一對 中,中間使用 分割。假設有乙個表tabl...

mysql一對多,合併多條記錄時

修改過後的sql語句,查詢後如圖2所示 1 select am.activeid,group concat m.modelname separator modelname 2 from activemodel am 3 join model m 4 on am.modelid m.modelid 5...

MySQL使用INSERT插入多條記錄

mysql使用insert插入多條記錄,應該如何操作呢?下面就為您詳細介紹mysql使用insert插入多條記錄的實現方法,供您參考。看到這個標題也許大家會問,這有什麼好說的,呼叫多次insert語句不就可以插入多條記錄了嗎!但使用這種方法要增加伺服器的負荷,因為,執行每一次sql伺服器都要同樣對s...