假設我有下表:
| 燃料 | 單位 | 全部的 |
|---|---|---|
| 柴油機 | 加侖 | 30 |
| 液化石油氣 | 加侖 | 20 |
| cng | 加侖 | 50 |
| 柴油機 | 升 | 10 |
我想在 SQL Server 中執行一個選擇查詢,它對“柴油”欄位的值求和。以升為單位的柴油乘以轉換系數,結果應如下所示。
| 燃料 | 單位 | 全部的 |
|---|---|---|
| 柴油機 | 加侖 | 40 |
我能夠將柴油從升轉換為加侖并獲得值,但我無法從表中以加侖為單位分離柴油,并在轉換后將其添加到以升為單位的柴油中。
uj5u.com熱心網友回復:
如果您只做 LITERS 和 GALLONS,那么條件聚合應該可以解決問題
示例或dbFiddle
Select fuel
,units = 'gallon'
,total = sum( case when units='liter' then total * 0.264172 else total end )
From YourTable
Group By fuel
結果
fuel units total
cng gallon 50.000000
diesel gallon 32.641720
lpg gallon 20.000000
編輯只是為了好玩。讓我們也添加桶
Declare @YourTable Table ([fuel] varchar(50),[units] varchar(50),[total] int)
Insert Into @YourTable Values
('diesel','gallon',30)
,('lpg','gallon',20)
,('cng','gallon',50)
,('diesel','liter',10)
,('diesel','barrel',1)
Select fuel
,units = 'gallon'
,total = sum( case units when 'liter' then 0.264172
when 'barrel' then 42
else 1
end * Total )
From @YourTable
Group By fuel
第二個結果
fuel units total
cng gallon 50.000000
diesel gallon 74.641720
lpg gallon 20.000000
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/369111.html
標籤:sql sql-server 通过...分组 和
