Oracle group by與case when統一單位後統計數量

孤竹星發表於2018-05-08

資料
select * from ware_info2 
1 硫酸 1.0000 千克
2 鹽酸 2.0000 千克
3 高錳酸鉀 3.0000
4 高錳酸鉀 4.0000 千克
5 高錳酸鉀 5000.0000 毫升
6 高錳酸鉀 6.0000
7 高錳酸鉀 7.0000

將毫升轉換成升,噸轉換成千克,彙總資料
select name,sum(
case
when unit='噸' then qty*1000
when unit='毫升' then qty/1000
else qty end), 
case 
when unit='噸' then '千克'
when unit='毫升' then '升'
when unit='升' then '升'
when unit='千克' then '千克'
 end as unit
from ware_info2
group by name,case 
when unit='噸' then '千克'
when unit='毫升' then '升'
when unit='升' then '升'
when unit='千克' then '千克'
end 
結果:
高錳酸鉀 3004 千克
硫酸 1 千克
鹽酸 2 千克
高錳酸鉀 18

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28282660/viewspace-2154179/,如需轉載,請註明出處,否則將追究法律責任。

相關文章