Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Хранимая процедура - странный результат  [new]
S_Shmall
Member

Откуда:
Сообщений: 18
Всем доброго!

Есть хранимая процедура SQL Server 2012

ALTER PROCEDURE [dbo].[Student]
@Grade Real = 0
AS
BEGIN
SET NOCOUNT ON;

SELECT * FROM dbo.View_Students_Noten WHERE (([Note1] + [Note2] + [Note3]) / 3.0 > @Grade)
END

При вычислении условия результат почему-то всегда приводится к int.
Например, если Note1 = 4, Note2 = 3, Note3 = 3, то результат ([Note1] + [Note2] + [Note3]) / 3.0 не 3.3333, а 3
Почему так?
3 апр 14, 17:32    [15828657]     Ответить | Цитировать Сообщить модератору
 Re: Хранимая процедура - странный результат  [new]
Кавказ-сила
Member

Откуда: Москва
Сообщений: 261
http://technet.microsoft.com/en-us/library/ms190309(v=sql.90).aspx
3 апр 14, 17:43    [15828736]     Ответить | Цитировать Сообщить модератору
 Re: Хранимая процедура - странный результат  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
S_Shmall,

не может быть.
Как проверяете?
3 апр 14, 17:44    [15828745]     Ответить | Цитировать Сообщить модератору
 Re: Хранимая процедура - странный результат  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Кавказ-сила
http://technet.microsoft.com/en-us/library/ms190309(v=sql.90).aspx
Ну приводится всё к REAL, ну и что?
3 апр 14, 17:48    [15828766]     Ответить | Цитировать Сообщить модератору
 Re: Хранимая процедура - странный результат  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
S_Shmall,

SELECT ([Note1] + [Note2] + [Note3]) / 3.0 FROM dbo.View_Students_Noten;
только целые части в результате выводит?
3 апр 14, 17:50    [15828783]     Ответить | Цитировать Сообщить модератору
 Re: Хранимая процедура - странный результат  [new]
o-o
Guest
мы "на слово" не верим
вот 2012, что я делаю не так?
и завесьте аналогичную картинку с запросом, где вместо @t -- dbo.View_Students_Noten

К сообщению приложен файл. Размер - 10Kb
3 апр 14, 17:51    [15828786]     Ответить | Цитировать Сообщить модератору
 Re: Хранимая процедура - странный результат  [new]
S_Shmall
Member

Откуда:
Сообщений: 18
ОК.
Я объясню подробнее. Цель запроса - выбрать студентов, у которых средний бал выше какого-то значения.
Понятно, что Note1,2,3 - это поля таблицы.
Если я задаю Grade к примеру 4, то в студенты, у которых средний бал, к примеру, 4.1 и выше, в вывод не попадают,
но если задам Grade 3.9, то попадают. Т.е. получается, что сравниваются только целые части
3 апр 14, 17:59    [15828845]     Ответить | Цитировать Сообщить модератору
 Re: Хранимая процедура - странный результат  [new]
S_Shmall
Member

Откуда:
Сообщений: 18
Спасибо всем! Полтергейст какой-то. Заработало после перезапуска Management Studio.
3 апр 14, 18:04    [15828880]     Ответить | Цитировать Сообщить модератору
 Re: Хранимая процедура - странный результат  [new]
o-o
Guest
сказочник

казалось бы, выведи ты средний балл, и гадать не придется, int или не int.
по секрету скажу: не от перезагрузки студии результат меняется.
от времени суток все зависит.
заметьте: в 17:32 был целый результат, а в 18:04 уже дробный.
3 апр 14, 18:20    [15828982]     Ответить | Цитировать Сообщить модератору
 Re: Хранимая процедура - странный результат  [new]
S_Shmall
Member

Откуда:
Сообщений: 18
автор
от времени суток все зависит.

Видимо! ;-)
3 апр 14, 18:23    [15829007]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить