パーセンテージを取得するためにいくつかの整数を除算しようとしています。もちろん、デフォルトでは整数の結果が得られるので、10 進数にキャストします。しかし、結果の小数点以下が 2 桁だけになるようにしたいと思います。
--select (x - y) / y
select (82 - 56) / 56 --0
select (82 - 56) / cast(56 as decimal(9, 2)) --0.4642857142
select cast(82 - 56 as decimal(9,2)) / 56 --0.464285
select cast((82 - 56) / 56 as decimal(9,2)) --0.00
select cast(cast(82 - 56 as decimal) / 56 as decimal(9,2)) --.46
したがって、必要な結果を得るには、オペランドの 1 つと式全体の両方をキャストする必要があります。これを行うより良い方法はありますか?
ハードコードされた数字を扱っていないことを示すために、数式を一番上に置いていることに注意してください (つまり、数字の後に ".0" を付けることを提案するのはあまり役に立ちません)。また、私は通常、書式設定の側面をレポート ソフトウェアに任せますが、これは時々 Excel スプレッドシートにコピーされるため、毎回手動で書式設定する必要があります。