テーブルから totalarea (列名) を合計したいストアド プロシージャを作成したいが、ユニット テーブル (他のテーブル) からそのユニットをチェックする必要があり、ユニットがベース ユニットでない場合は、ベース ユニットに変換する必要があります。最初に合計を計算する必要があります。単位表は
前もってThnx
テーブルから totalarea (列名) を合計したいストアド プロシージャを作成したいが、ユニット テーブル (他のテーブル) からそのユニットをチェックする必要があり、ユニットがベース ユニットでない場合は、ベース ユニットに変換する必要があります。最初に合計を計算する必要があります。単位表は
前もってThnx
あなたがしたいことは、units テーブルに結合することです。ただし、一致しない場合があるため、左外部結合を使用してから、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
より安全に思えます。
また、フィートやメートルなどの線形単位からヘクタールなどの面積単位に変換する方法もわかりません。これは、単位の選択に問題があることを示しています。