2015-10-08 4 views
1

Я смотрел этот пост: How to convert integer to decimal in SQL Server query?, но это не так, как я ожидал.SQL Server конвертирует целые числа в десятичные

У меня есть простое уравнение - ([X] - [Y])/[X] где X и Y - произвольные значения int из столбцов. Я хотел бы сохранить результат как десятичное число, включая 1 (или 100%). Но когда я пытаюсь запросить это, я, кажется, не получаю то, что ожидаю. Если я использую запрос ниже - я получаю 0.

Вот мой запрос до сих пор:

CONVERT(DECIMAL(3, 2), (s4.Duration - s2.Interruption_Min_Total)/s4.Duration) AS Percentage 

Если вы хотите увидеть больше моего фактического запроса, пожалуйста, спрашивайте - я отправлю его в случае необходимости ,

Любая помощь в этом была бы принята с благодарностью.

+0

Просто умножьте на * '1.0' * – lad2025

ответ

2

Вы должны заставить SQL Server для преобразования int используется в разделении в десятичной системе, а затем SQL Server возвращает десятичное:

DECLARE @v1 INT; 
DECLARE @v2 INT; 
DECLARE @v3 INT; 

SET @v1 = 5; 
SET @v2 = 2; 
SET @v3 = 4; 

SELECT (@v1 - @v2)/@v3; 

SELECT (@v1 - @v2)/CONVERT(DECIMAL(10,2), @v3); 

Пожалуйста, обратите внимание на ответы на this вопрос.

+0

Так что это не' mysql', удаляющий мой ответ –

+1

Да, это прекрасно. Спасибо за другую ссылку. Я соглашусь, как только это позволит мне –

+0

Проверьте ваши тэги в следующий раз @HardTacos, рад, что ваша проблема решена –

Смежные вопросы