0

次のようなクエリがあります。

Select Customer,JobType,sum(SThours),
sum(OThours),SortMonth,
str((sum(OThours)/sum(SThours)),5,2)AS Ratios 
from #data
group by Customer,JobType,SortMonth


Sum (SThours): 688
sum(OThours): 618

比率は 618/688=0.90 のはずですが、私の結果は 1.00 です

私は SQL を初めて使用するので、助けが必要です。ありがとう。

4

3 に答える 3

3

整数除算ではなく浮動小数点を強制するために、除算の一方または他方を浮動小数点数にキャストしてみてください。

SELECT
  Customer,
  JobType,
  sum(SThours),
  sum(OThours),
  SortMonth,
  str((CAST(sum(OThours) AS FLOAT)/sum(SThours)),5,2) AS Ratios
FROM
  #data
GROUP BY
  Customer,
  JobType,
  SortMonth
于 2013-02-21T13:58:07.243 に答える
1

あなたの問題は、整数除算を実行しているため、常に整数値が返されることです。合計を除算する前に、浮動小数点数値にキャストする必要があります (10 進数が機能するはずです)。

于 2013-02-21T13:58:54.553 に答える