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

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

Подсчет среднего значения с нулевыми числами [D7, WinXP]


Страницы:   1 2 3 4

kyn66 ©   (2009-10-23 09:53:00) 

Сталкнулся с данной ситуацией, пытаясь установить в футоре DBGridEh подсчет среднего значения по столбцу. Вот ведь как оно получается, имеется два ряда чисел:

5      5
4      0
3      3
2      0
1      1
=      =
3     1.8

Но для реальной отчетности нужны реальные данные среднего значения, без нулей. Это как-то решается? Может есть какой дополнительный параметр для компонента или ....?


Anatoly Podgoretsky   (2009-10-23 12:08:00) [41]

АVG определен так Sum(Values)/Count(Values) и все
Все значения должный учитываться. NULL отсутствие значения.


Anatoly Podgoretsky   (2009-10-23 12:06:00) [42]

А если там будут значения -3, тогда что, это же уже не реальное значение и оборота тоже нет, есть минусование.


Anatoly Podgoretsky   (2009-10-23 12:04:00) [43]


> Тяжело объяснить , если не понятна задача. Представьте,
> что стоит такая задача, подсчитать среднее, без учета нулей,
>  задействовав стандартный механизм компонента. Нужно глянуть
> в исходнике как там идет обработка

Там реальное значение, а не пустые значения и механизм не только стандартный, но еще и соответствует математике.


Сергей М.   (2009-10-23 12:02:00) [44]


> Если бы проблема была только в слове "ИТОГО"


Действительно - если бы)


kyn66   (2009-10-23 11:53:00) [45]


> Сергей М.


Если бы проблема была только в слове "ИТОГО"....


kyn66   (2009-10-23 11:52:00) [46]


> а ты еще и не доволен? я умываю руки, тебе смотреть [6]
> [18]


Да без обид, просто устал объяснять, что иногда ставятся разные задачи и все под одну логику не подведешь.

Я вот прошелся по исходнику в режиме отладки и вышел вот на эту строку http://yurec66.narod.ru/Vopros/rez.jpg. Явно понятно, что компонент подсчитывает все строки не Null. Но потом будет гемор с этими неопределенными значениями в дальнейших подсчетах. Exeption вываливать будут, было уже такое , тока уже не помню в какой ситуации, пока явно ноль не поставишь вместо пустого значения.


Сергей М.   (2009-10-23 11:49:00) [47]


> kyn66 ©   (23.10.09 11:25) [25]


Вообще-то пользователь в здравом рассудке вполне резонно должен полагать, что если в футере написано "ИТОГО", то в соответствующих колонках там фигурируют итоговыекол-ва и суммы по всейпоказанной гридом номенклатуре.
А ты там вместо ожидаемых итоговых количеств и сумм безо всяких на то комментариев хочешь вывести статистические расчеты типа среднеарифметических значений, да еще и никак не информируя пользователя о  "нестандартной" логике этих расчетов.


brother   (2009-10-23 11:39:00) [48]

а ты еще и не доволен? я умываю руки, тебе смотреть [6] [18]


kyn66   (2009-10-23 11:36:00) [49]


> если тебе задача не понятна, какие ТЗ ты нам предъявляешь?


Это не мне, а тебе не понятно. Сколько раз объяснять нужно? См. основной вопрос! Но для реальной отчетности нужны реальные данные среднего значения, без нулей.


brother   (2009-10-23 11:31:00) [50]

> Тяжело объяснить , если не понятна задача.

если тебе задача не понятна, какие ТЗ ты нам предъявляешь?


kyn66   (2009-10-23 11:25:00) [51]


> Нет тут никакого здравого смысла.


Тяжело объяснить , если не понятна задача. Представьте, что стоит такая задача, подсчитать среднее, без учета нулей, задействовав стандартный механизм компонента. Нужно глянуть в исходнике как там идет обработка.


Сергей М.   (2009-10-23 11:04:00) [52]


> Здесь есть здравый смысл


Нет тут никакого здравого смысла.


brother   (2009-10-23 11:02:00) [53]

> чтобы нуливыкинул из столбца.

не заполняй значение


kyn66   (2009-10-23 11:00:00) [54]


> у тебя с математикой туго?(5 + 3 + 1)/3 = 3


Это ты не мне скажи, а компоненту, чтобы нуливыкинул из столбца.


kyn66   (2009-10-23 10:57:00) [55]


> Если ты выкинешь эти нули, то тогда ты обязан выкинуть из
> периода и соотв.дни, иначе коту под хвост такая статистика)


В представленной картинке ( http://yurec66.narod.ru/Vopros/gof.jpg) кокретно заострим внимание на графе "Реализация за месяц" . Там статистика показана не по дням, а по товару конкретно. И если реализации за месяц небыло, то зачем включать нули в общую сумму реализации по остальным позициям. Здесь есть здравый смысл. Может просто действия компонента в данном случае не совсем подходят.


Сергей М.   (2009-10-23 10:57:00) [56]


> brother ©   (23.10.09 10:52) [17]


Почему туго ? Он на 5 делит, а не на 3, ибо в ряду 5 значений. И получает как и положено 1,8


brother   (2009-10-23 10:56:00) [57]

Сергей, твой телепатор еще работает?)


Сергей М.   (2009-10-23 10:55:00) [58]


> Подсчитать среднее по столбцу без учета нулей


Тогда это будет не в среднем за месяц, а в среднем за период, сотоящий из дней в течение этого месяца,  в которые было ненулевое движение.

А это два разныхотчета, которые ты сейчас пытаешься замесить в одну кучу, рискую ввести юзера в заблуждение.


brother   (2009-10-23 10:52:00) [59]

у тебя с математикой туго?
(5 + 3 + 1)/3 = 3


kyn66   (2009-10-23 10:50:00) [60]


> сам то понимаешь, чего хочешь? вопрос переформулируй


А что не понятного? Подсчитать среднее по столбцу без учета нулей


Страницы:   1 2 3 4

Наверх

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