Проблема с округлением в SQL строке

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Emzari
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 06.09.2002 (Пт) 9:08
Откуда: Georgia

Проблема с округлением в SQL строке

Сообщение Emzari » 13.02.2010 (Сб) 13:58

Столкнулся вот с такой проблемой: когда выполняю вот такой запрос

SELECT Products.ProductName, ROUND(Products.UnitPrice, 1) AS Price
FROM Products
ORDER BY Products.ProductName

в полученной таблице значения поля UnitPrice не округляются, а при выполнении вот такого запроса округляются

SELECT Products.ProductName, ROUND(Products.UnitPrice * 1, 1) AS Price
FROM Products
ORDER BY Products.ProductName

Не пойму почему?!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Проблема с округлением в SQL строке

Сообщение iGrok » 13.02.2010 (Сб) 17:49

Какой тип данных у UnitPrice ?
label:
cli
jmp label

Emzari
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 06.09.2002 (Пт) 9:08
Откуда: Georgia

Re: Проблема с округлением в SQL строке

Сообщение Emzari » 15.02.2010 (Пн) 12:44

У UnitPrice тип данных Single

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Проблема с округлением в SQL строке

Сообщение iGrok » 15.02.2010 (Пн) 14:44

Single??? Что это за СУБД? Access что ли?

Ну и приведи пример значения в колонке, и значния, выдаваемого первым и вторым запросами.
label:
cli
jmp label

Emzari
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 06.09.2002 (Пт) 9:08
Откуда: Georgia

Re: Проблема с округлением в SQL строке

Сообщение Emzari » 15.02.2010 (Пн) 18:08

Да использую базу данных Access. Значения поля UnitPrice могут иметь до 4 знака после запятой а мне нужно выводить только один.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Проблема с округлением в SQL строке

Сообщение iGrok » 15.02.2010 (Пн) 21:52

Хмм..
Похоже, это косяк акцесса. Ничем другим я этого не могу объяснить.
Код: Выделить всё
id price
1  100,234
--->
SELECT id, price, ROUND(price,1) AS p, int(price * 10)/10 as p2, round(price * 1, 1) as p3
FROM prices ORDER BY id
--->
id price   p                p2    p3
1  100,234 100,199996948242 100,2 100,2


З.Ы. Т.е. я, конечно, в курсе, что 100,199996948242 = 100,2
Но всё же это не совсем ожидаемый результат выполнения запроса...
label:
cli
jmp label


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 31

    TopList