Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вычисление процента [D6, MSSQL]


wild_arg ©   (2004-10-12 09:36:00) 

Вывожу след. набор данных:
select
 Name,
 SUM(Quantity) [Quantity]
from
 Table1
group by
 Name

Name | Quantity
===============
....   ......
....   ......


Попросили добавить еще колонку, показывающую процент каждой записи по отношению к общей сумме, т.е. долю каждого количества
Ну я вычислил сначала общую сумму:
declare @itog money
select
 @itog = SUM(Quantity)
from
 Table1

затем вывел прежний набор данных, но уже с долей
select
 Name,
 SUM(Quantity) [Quantity],
 convert(decimal(18,2),(Sum(Quantity)*100)/@itog)[Percent]
from
 Table1
group by
 Name

ну типа все хорошо выводит - только, когда я вывожу отчет в Excel - если просуммировать по колонке процентов, то в сумме не всегда получается 100 процентов. Иногда 99.99, иногда 100,01. Если конвертить в decimal(18,3), то количество случаев с неточной суммой увеличивается...
Есть у кого-нить какие идеи?


sniknik   (2004-10-12 11:26:00) [1]

не округляй вообще, в сумме тогда получиш более точное приближение (100.0000896 или 99,99995454).
либо округляй уже сумму до целого, все одно это приблизительные данные.

поищи статью на королевстве дельфи посвященную числам с плавающей запятой. почитай для общего развития.


Наверх

Титульная страница Поиск, карта сайта Написать письмо