Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Округления () / 1 сообщений из 1, страница 1 из 1
14.08.2001, 14:53
    #32011770
Округления ()
Такая вот ситуация.

Есть выборка по заказам:

select od.productid,sum(od.pcount),sum(od.pcount*od.price) from orders as o
inner join odetails as od on od.orderid=o.orderid
where <условия на заказы>
group by od.productid

все идет замечательно.

Но как параметр заказа вводится скидка в процентах o.discount.
Учитывая то, что сумма заказа со скидкой округляется вниз, получаем такой запрос:

select od.productid,sum(od.pcount),sum(floor(od.pcount*od.price*(1.0-cast(o.discount as float)/100))) from orders as o
inner join odetails as od on od.orderid=o.orderid
where <условия на заказы>
group by od.productid

Все снова идет замечательно. Если сложить все построчно, то все хорошо.
Но если убрать group by или добавить with cube для получения суммы, то получается другой результат.

Посмотрите свежим взглядом, может кто сталкивался, а то я весь день имею много любви с этой ситуёвиной.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Округления () / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]