私は700で出てくる次のSQLクエリを持っています
declare @a decimal(10,0)
declare @b decimal(10,0)
set @a = 100 - 2
set @a = @a / 14
set @a = @a * 100
set @a = ((100 - 2) / 14) * 100
select @a
私が探しているのは、85.714285などを返すことです...
どこが間違っているのかよくわかりません。
ありがとう
私は700で出てくる次のSQLクエリを持っています
declare @a decimal(10,0)
declare @b decimal(10,0)
set @a = 100 - 2
set @a = @a / 14
set @a = @a * 100
set @a = ((100 - 2) / 14) * 100
select @a
私が探しているのは、85.714285などを返すことです...
どこが間違っているのかよくわかりません。
ありがとう
あなたの宣言は間違っています:
declare @a decimal(10,0)
declare @b decimal(10,0)
長さを指定しましたが、小数点以下の桁数は指定しませんでした。これは、2 番目の値を使用して行われます。
すべての整数を使用すると、SQL は暗黙的に結果を int としてキャストするため、最後の行の末尾に .0 を追加します。
set @a = ((100 - 2) / 14) * 100.0
小数点以下の桁数を含めるように宣言を変更します。
declare @a decimal(10,5)
declare @b decimal(10,5)
set @a = 100 - 2
set @a = @a / 14
set @a = @a * 100
set @a = ((100 - 2) / 14) * 100
select @a
宣言が に設定されて10,0
いるため、小数点以下の桁数は取得されません。
答えを 85.714... にしたい場合は、SQL を次のように変更する必要があります。
declare @a decimal(10,5)
set @a = 100.0 - 2.0
set @a = @a / 14.0
set @a = @a * 100.0
set @a = 100.0 - ((2.0 / 14.0) * 100.0)
select @a
探している結果を得るには.
、他の値 (2、14 など) に a を追加する必要があり、必要な値が得られます。括弧が正しい位置にあることも確認する必要があります。
結果 - 85.71430
700
が正しい結果です。
再度確認してください!
((100 - 2) / 14) * 100 = 700
あなたはそれを計算しました
100 - 2 / 14 * 100 = 85,...
このSQLクエリを使用したいと考えています。
set @a = 100 - 2.0 / 14 * 100