基本単位と変換単位の値を持つ単位の表があります
今、私は総面積と取得面積の値を持つ別のテーブルを持っていますが、値は異なる単位です総面積と取得面積をヘクタールに変換してからそれらを追加したい
基本単位と変換単位の値を持つ単位の表があります
今、私は総面積と取得面積の値を持つ別のテーブルを持っていますが、値は異なる単位です総面積と取得面積をヘクタールに変換してからそれらを追加したい
SELECT SUM((t.Total_Area / (u.Converting_Unit / u.Base_Unit) +
(t.Total_Area1 / (u3.Converting_Unit / u3.Base_Unit)))) AS Sum_Total_Area,
SUM((t.Acquired_Area / (u2.Converting_Unit / u2.Base_Unit) +
(t.Acquired_Area1 / (u4.Converting_Unit / u4.Base_Unit)))) AS Sum_Acquired_Area,
MAX(u4.Base_UnitCode) AS Base_Unit
FROM dbo.Total t JOIN dbo.Units u ON t.Total_Area_UnitCode = u.Unit_Name
JOIN dbo.Units u2 ON t.Acquired_Area_UnitCode = u2.Unit_Name
JOIN dbo.Units u3 ON t.Total_Area_UnitCode1 = u3.Unit_Name
JOIN dbo.Units u4 ON t.Acquired_Area_UnitCode1 = u4.Unit_Name
したがって、データ構造を修正できないと仮定すると、次のようになります。
SELECT Total_Area * TotalConvertingTable.Base_Unit / TotalConvertingTable.Converting_Unit AS TotalHectareArea
, Acquired_Area * AcquiredConvertingTable.Base_Unit / AcquiredConvertingTable.Converting_Unit AS AcquiredHectareArea
FROM
AreaTable
INNER JOIN
ConvertingTable AS TotalConvertingTable
ON
AreaTable.Total_Area_Unit_Code = TotalConvertingTable.Unit_Name
INNER JOIN
ConvertingTable AS AcquiredConvertingTable
ON
AreaTable.Acquired_Area_Unit_Code = AcquiredConvertingTable.Unit_Name
AreaTableは、質問で2番目にリストされているテーブルです。ConvertingTableを最初に。
AreasをConvertingテーブルに結合して変換係数を取得し、次にソース単位に変換係数を掛けてヘクタール単位の出力を取得します。
また、変換テーブルにはヘクタールの基本単位のみが含まれていると想定しています。必要に応じて、他のものを非常に簡単に除外できます。
_1フィールドを含めるには、追加の結合が必要になります。