Oracleの私のテーブルはこのようなものです
Col Col1 Col2 Col3 ColR
-- ---- ---- ---- ----
30 73 40 null -10
60 32 null 20 40
90 80 null null 10
80 45 81 30 50
上記の列でnullの代わりに0を設定することもできます。nullまたは0を無視してCol1、Col2、Col3から最小値を見つけ、Colから減算してColRにデータを入力する必要があります。
編集:テーブル内のnull値が原因で機能しないCASEステートメントを作成しました。
SELECT col,col1,col2,col3,
CASE
WHEN Col1 < Col2 AND Col1 < Col3
THEN Col - Col1
WHEN Col2 < Col1 AND Col2 < Col3
THEN Col - Col2
ELSE Col - Col3
END ColR
FROM
(SELECT col,col1,
CASE
WHEN col22 IS NULL
THEN NULL( i can also SET TO 0 but it will mess WITH my other calculation TO find MIN)
ELSE ROUND( 100* ( (col22) / (col44)))
END col2 ,
CASE
WHEN col33 IS NULL
THEN NULL
ELSE ROUND( 100* ( (col33) / (col44)))
END col3
FROM TABLE
)
selectクエリ内にcaseステートメントを含めました。すべての列の値はすべて、別のクエリから入力されます。