3

SQL Server 2008では、2つの列(CompletesおよびPrescreens、整数全体)を除算する必要があるレポートを実行しています。次に、Excelに移動してPrescreens除算を取得しCompletes、小数点以下2桁の数値に変換します。それをパーセンテージに変換します。つまり、-> 0.34の場合、34%になります。

SQLの知識では、おそらく「34%」として出力を取得することはできませんが、少なくとも0.34として出力したいと思います。これまでのところ:

cast((sq.Completes/sq.Screens ) as float ) as 'conv'

コンプリートは小さい数字(通常は27、38など)であり、スクリーンは大きい数字(124、276など)です。

しかし、これは私の列をすべてとして出力しています0s。0.34、0.84などを表示するにはどうすればよいですか

4

2 に答える 2

6

このようにしてみてください:

select (cast(sq.Completes as float)/cast(sq.Screens as float)) as 'conv'

これを実行して、値を丸めることもできます。

select round((cast(sq.Completes as float)/cast(sq.Screens as float)),2) as 'conv'

そして最後に、これをパーセンテージで視覚的に表示します。

select cast(round((cast(sq.Completes as float) /
   cast(sq.Screens as float)),2) * 100 as varchar(25)) 
   + '%' as 'conv'
于 2012-10-16T23:55:57.357 に答える
2

純粋な数(ラウンドを含む)

cast(100.0*sq.Completes/sq.Screens as decimal(6,0)) conv

パーセントで

cast(cast(100.0*sq.Completes/sq.Screens as decimal(6,0)) as varchar(6)) + '%' conv
于 2012-10-17T08:17:05.917 に答える