-1

テーブルから totalarea (列名) を合計したいストアド プロシージャを作成したいが、ユニット テーブル (他のテーブル) からそのユニットをチェックする必要があり、ユニットがベース ユニットでない場合は、ベース ユニットに変換する必要があります。最初に合計を計算する必要があります。単位表は

ここに画像の説明を入力

前もってThnx

4

1 に答える 1

1

あなたがしたいことは、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

より安全に思えます。

また、フィートやメートルなどの線形単位からヘクタールなどの面積単位に変換する方法もわかりません。これは、単位の選択に問題があることを示しています。

于 2013-01-09T14:27:48.280 に答える