-1

我想创建一个存储过程,在其中我想从表中求和总面积(列名),但必须从单位表(其他表)中检查其单位,如果单位不是基本单位,则应将其转换为基本单位首先计算总和。单位表是

在此处输入图像描述

提前谢谢

4

1 回答 1

1

您要做的是加入单位表。但是,由于可能没有匹配项,请使用左外连接,然后使用该coalesce()函数检查 NULL 值。我认为它应该是这样的:

select sum(t.area) * coalesce(u.Converting_unit, 1.0)/coalesce(u.Base_unit, 1.0) as TotalArea
from t left outer join
     units u
     on t.unit_code = u.unit_code

老实说,我对这种方法有点警惕,因为它需要转换为单位的一致性。就像是:

select sum(t.area) * coalesce(u.Converting_unit, 1.0)/coalesce(u.Base_unit, 1.0) as TotalArea,
       u.base_unitcode
from t left outer join
     units u
     on t.unit_code = u.unit_code
group by u.base_unitcode

似乎更安全。

我也不明白您如何将英尺和米等线性度量转换为公顷等面积度量。这表明您选择的单位存在问题。

于 2013-01-09T14:27:48.280 回答