2016-12-04 2 views
0

Oracleでは、各行に整数があり、最も近いドルに丸められる既存の列の1.75パーセントを見つけるSELECTクエリを作成します。既存の列のパーセント値を検出する新しい列を追加します。

私は幾分クエリがダウンしていますが、パーセント計算を実行するための数式を書く方法を理解することはできません。数学の授業から

SELECT R.LAST_NAME, O.RENT_FEE, ROUND(RENT_FEE,0) AS DISCOUNT 
FROM ROOM_UNIT R, OWNER O 
WHERE R.OWNER_NUM = O.OWNER_NUM 
+0

数字にパーセンテージを適用する方法を尋ねているとは思えません...さらに、あなたは[同じ質問]を投稿しました(http://stackoverflow.com/questions/40711290 /減らす - すべての値を列単位で1%に減らす)少なくとも基礎を勉強して勉強してください – Aleksej

答えて

2

は、我々はx%によって割り引くことは1.75%で割り引い、あなたのケースでは

(1-x/100) 

を掛けると同等であることにより、乗算を意味することを知って、(1 - 0.0175)または0.9825

SELECT R.LAST_NAME, O.RENT_FEE, ROUND((1 - 0.0175) * RENT_FEE,0) AS DISCOUNT 
FROM ROOM_UNIT R, OWNER O --   ^^^^^^^^^^^^ 
WHERE R.OWNER_NUM = O.OWNER_NUM 
+0

'(1 - 0.0175)* RENT_FEE'と書いてみませんか?それはより明確になり、エラーを起こしにくいように見えます。 –

+1

@GordonLinoff大変ありがとうございました!実際に読みやすくなり、オプティマイザは減算を最適化します。 – dasblinkenlight

関連する問題