Вот ЗЕЬЕСТ:Функция SQL Round не работает, любые идеи?
SELECT ROUND(ISNULL(SUM(Price),0),2) As TotalPrice
FROM Inventory
WHERE (DateAdded BETWEEN @StartDate AND @EndDate)
Любые идеи о том, почему он не округление до двух знаков после запятой?
Вот ЗЕЬЕСТ:Функция SQL Round не работает, любые идеи?
SELECT ROUND(ISNULL(SUM(Price),0),2) As TotalPrice
FROM Inventory
WHERE (DateAdded BETWEEN @StartDate AND @EndDate)
Любые идеи о том, почему он не округление до двух знаков после запятой?
вместо ROUND(ISNULL(SUM(Price),0),2)
вы можете попробовать CAST(ISNULL(SUM(PRICE),0) AS DECIMAL (4,2))
Идеальный и просто напоминает мне основы, когда это необходимо :) – bonCodigo
Что тип данных Цена?
SELECT ROUND(123.4545, 2); -- = 123.4500
GO
SELECT ROUND(123.45, -2); -- = 100,00
GO
Основной тип данных остается неизменным: вы просто круглые, но оставить завершающие нули.
Для 2 десятичного место выходного, вы должны были бы CAST в десятичную (х, 2)
Вы могли бы возникли проблемы сортировочные для столбца в вашей среде. Можете попробовать явное литье CAST (ROUND (...) AS NUMERIC (18,4)) или даже попробуйте сделать 0 0.0. Убедитесь, что вы также привязываете столбец с соответствующим типом данных в своем приложении.
Все классные люди используют COALESCE вместо ISNULL. COALESCE переносится, и вы можете иметь столько параметров, сколько хотите (не только два!)
В любом случае, я не уверен, что это был только пример, но у вас также могут быть проблемы с DA с вашими данными, если бы у него не было уже были округлены на этом этапе.
COALESCE работает медленнее, чем ISNULL на MSSQL. Как это круто? – gbn
ISNULL может генерировать лучшие планы выполнения, если они используются в предложении WHERE. Он не оказывает ощутимого влияния на производительность наборов результатов. – Einstein
Так крутые люди непоследовательны? ISNULL в предложениях WHERE, COALECSE в предложениях SELECT ... – gbn
Каков результат, если вы не используете функцию ROUND? – shahkalpesh