次の表を使用してSQLServer2008に取り組んでいます。
id user program seconds
------------------------------------
9999 'user01' 'pr01' 5
列'seconds'はdecimal(14,0)として定義され、テーブル内の唯一の行は表示されている行です。
だから私はいくつかのクエリを試してみます:
Q1:
select seconds*0.95 from myTable
union all
select seconds from myTable
それは私が期待する結果を与えます:
4.75
5.00
Q2:
select sum(seconds)*0.95 from myTable
union all
select sum(seconds) from myTable
Q1と同じ結果を期待していましたが、得られる結果は次のとおりです。
5
5
Q3:
select sum(seconds)*0.95 from myTable
union all
select sum(seconds)*1.00 from myTable
この場合、期待する結果が得られます。
4.75
5.00
では、なぜ第2四半期に期待した結果が得られないのかを知りたいと思います。'seconds'がdecimal(2,0)である同じ例を試しましたが、正常に動作するので、decimalのサイズと関係があると思いますが、その場合、Q1とQ3が動作する理由がわかりません。 Q2はしません。