如何对两个SUMmed SQL结果字段求和

问题描述

我有一个简单的表结构,其中包含 reagent_bottles reagent_aliquots 的记录。

从瓶子创建等分试样,等分试样记录将外键bottle_id指向了瓶子id。

获取特定试剂的总体积(同时计算瓶中的体积和等分试样中的体积),下面的查询可以部分完成此工作:

SELECT  
      COALESCE(SUM(rb.volume),0) AS bVolume,COALESCE(SUM(ra.volume),0) AS aVolume
FROM reagent_bottles AS rb
LEFT JOIN 
      reagent_aliquotes AS ra
ON rb.id = ra.bottle_id
WHERE reagent_id = 408;

返回以上试剂编号(408):

bVolume | aVolume
       2|       6

添加bVolume和aVolume是正确的答案,即8。

问题是,如何重写上面的查询以创建一个新字段 total_volume ,将查询中的bVolume和aVolume相加?

我尝试过:

SELECT  
      COALESCE(SUM(rb.volume),0) AS aVolume,SUM(bVolume + aVolume) AS total_volume
FROM 
      reagent_bottles AS rb
LEFT JOIN 
      reagent_aliquotes AS ra
ON rb.id = ra.bottle_id
WHERE reagent_id = 408;

但收到错误未知列,字段列表中的bVolume ..!

解决方法

汇总原始列:

SELECT  
      COALESCE(SUM(rb.volume),0) AS bVolume,COALESCE(SUM(ra.volume),0) AS aVolume,SUM(COALESCE(rb.volume,0) + COALESCE(ra.volume,0)) AS total_volume
FROM 
      reagent_bottles AS rb
LEFT JOIN 
      reagent_aliquotes AS ra
ON rb.id = ra.bottle_id
WHERE reagent_id = 408;

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...