我想得到所有体积的总和,但我不知道如何得到加仑/秒到升/秒或毫升/秒的总和。
我使用这个SQL查询:
SELECT CONCAT(TRIM(SUM(Raw_Quantity *
CASE WHEN Unit_Name= 'mL/s' THEN 1
WHEN Unit_Name= 'liter/s' THEN 1000
WHEN Unit_Name= 'gallon/s' THEN 3.785
END)) / 1000, ' liter/s')
WHEN TRIM(SUM(Raw_Quantity *
CASE WHEN Unit_Name= 'mL/s' THEN 1
WHEN Unit_Name= 'liter/s' THEN 1000
WHEN Unit_Name= 'gallon/s' THEN 3.785
END)) + 0 >= 1
THEN CONCAT(TRIM(SUM(Raw_Quantity *
CASE WHEN Unit_Name= 'mL/s' THEN 1
WHEN Unit_Name= 'liter/s' THEN 1000
WHEN Unit_Name= 'gallon/s' THEN 3.785
END)) / 1, ' mL/s')
WHEN TRIM(SUM(Raw_Quantity *
CASE WHEN Unit_Name= 'mL/s' THEN 1
WHEN Unit_Name= 'liter/s' THEN 1000
WHEN Unit_Name= 'gallon/s' THEN 3.785
END)) + 0 >= 3.785
THEN CONCAT(TRIM(SUM(Raw_Quantity *
CASE WHEN Unit_Name= 'mL/s' THEN 1
WHEN Unit_Name= 'liter/s' THEN 1000
WHEN Unit_Name= 'gallon/s' THEN 3.785
END)) / 3.785, ' gallon/s')
END) AS 'QUANTITY',
GROUP_CONCAT(
CASE WHEN Unit_Name = 'liter/s' AND Raw_Expiration_Date.Raw_Quantity < 1 THEN 'mL/s'
WHEN Unit_Name = 'gallon/s' AND Raw_Expiration_Date.Raw_Quantity < 1 THEN 'liter/s'
WHEN Unit_Name = 'liter/s' AND Raw_Expiration_Date.Raw_Quantity > 3.785 THEN 'gallon/s'
ELSE Unit_Name
END) SEPARATOR '') AS 'Raw_Expiration_Date'
FROM Raw_Expiration_Date
INNER JOIN Raw_Material_Table ON Raw_Expiration_Date.Raw_ID = Raw_Material_Table.Raw_ID
INNER JOIN unit_table ON unit_table.Unit_ID = raw_expiration_date.Unit_ID
GROUP BY Raw_Material_Table.Raw_ID
ORDER BY Raw_Name ASC;
这是我的示例数据:
Raw_Quantity Unit_Name
500 mL/s
3 liter/s
6 liter/s
20.780 gallon/s
但是,结果是不正确的:
9.5786523升/s
我想我的错误是在如何计算加仑/秒。我在这些计算中做错了什么?
如果确实有3.785升到一加仑,那么问题是你的加仑乘数是3.785,但它应该是3785.0