Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2011, 17:37   #1
yellowviolet
Новичок
Джуниор
 
Регистрация: 15.11.2011
Сообщений: 2
По умолчанию Вычисление среднего значения из нескольких полей одной записи

Здравствуйте, уважаемые профессионалы,

Мне необходимо для каждой записи находить среднее значение из трёх полей. При вычисления среднего значения необходимо, чтобы незаполненые поля игнорировались, то есть вычисление производилось бы из оставшихся заполненых полей. Я так понимаю, что при использовании функции Avg, этой проблемы не существует, значения Null не учитываются. Но Avg можно использовать, если вычислять среднее по всем записям одного поля, но не для моей задачи. Вычисляя среднее из разных полей ничего другого не смогла придумать, как применить (a+b+c)/3. В этом случае, при незаполнении любого поля, естественно по формуле ничего не вычисляется. Не являюсь программистом, при попытке использовать Expression Builder и SQL для исключения пустых полей, неизбежно получаю ошибки синтаксиса.

Если кто-нибудь снизойдёт до советов и рекомендаций, буду бесконечно признательна.
yellowviolet вне форума Ответить с цитированием
Старый 15.11.2011, 18:51   #2
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

так поставьте группировку и вывод первых 10 значений а в SQL поменяйте на 3 значения.
gluk_fm вне форума Ответить с цитированием
Старый 15.11.2011, 19:04   #3
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от yellowviolet Посмотреть сообщение
Здравствуйте, уважаемые профессионалы,

Мне необходимо для каждой записи находить среднее значение из трёх полей. При вычисления среднего значения необходимо, чтобы незаполненые поля игнорировались, то есть вычисление производилось бы из оставшихся заполненых полей. Я так понимаю, что при использовании функции Avg, этой проблемы не существует, значения Null не учитываются. Но Avg можно использовать, если вычислять среднее по всем записям одного поля, но не для моей задачи. Вычисляя среднее из разных полей ничего другого не смогла придумать, как применить (a+b+c)/3. В этом случае, при незаполнении любого поля, естественно по формуле ничего не вычисляется. Не являюсь программистом, при попытке использовать Expression Builder и SQL для исключения пустых полей, неизбежно получаю ошибки синтаксиса.

Если кто-нибудь снизойдёт до советов и рекомендаций, буду бесконечно признательна.
Код:
SELECT T.[F1], T.[F2], T.[F3], (IIf([f1],[f1],0)+IIf([f2],[f2],0)+IIf([f3],[f3],0))/(IIf([f1],1,0)+IIf([f2],1,0)+IIf([f3],1,0)) AS tt
FROM T
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234

Последний раз редактировалось R Dmitry; 15.11.2011 в 20:08. Причина: теги
R Dmitry вне форума Ответить с цитированием
Старый 16.11.2011, 12:02   #4
yellowviolet
Новичок
Джуниор
 
Регистрация: 15.11.2011
Сообщений: 2
По умолчанию

Большое Вам спасибо!
yellowviolet вне форума Ответить с цитированием
Старый 16.11.2011, 22:55   #5
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте yellowviolet.
в дополнение к решению которое предложил R Dmitry, предлагаю ещё один вариант его исполнения:
Код:
SELECT [F1], [F2], [F3], (Nz(F1,0) + Nz(F2,0) + Nz(F3,0)) / (-IsNull([F1])-IsNull([F2])-IsNull([F3])) as F
FROM T
хочу Вас предупредить, в обоих конструкциях нет защиты от деления на ноль(!).

Евгений.
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычисление среднего арифметического по датам mori Microsoft Office Excel 6 17.12.2009 08:21
При удалении записей значения полей с type:=Autoincrement (т.е+) в оставшихся полей не изменяются kenta БД в Delphi 2 29.10.2009 08:28
Объеденение полей запроса в для отображения нескольких полей в одном списке mrCreator Microsoft Office Access 3 08.08.2009 00:53
Как выводить значения отдельных полей таблицы при выборе записи в DBGrid Sinker БД в Delphi 9 25.03.2009 12:28
Вычисление среднего во временном ряде alexk Microsoft Office Excel 5 18.06.2008 14:41