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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2010, 21:06   #1
wallstreet
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 18
По умолчанию Средняя за определенный период

Всем привет!
Есть два поля время и цена
подскажите как создать цикл и расчитать среднюю цену за определенный период времени. При этом расчитывать надо за, предположим последние 14 минут.
Есть идея задавать начальный период типа dateadd("n",-14,now) потом брать данные что идут после этого времени и их уже усреднять..
Основная загвоздка, создать цикл поиска начала выборки, потом взять все записи поля цена после начальной записи, расчитать простую среднюю.

Кто знает, помогите плз..

Последний раз редактировалось wallstreet; 10.03.2010 в 21:30.
wallstreet вне форума Ответить с цитированием
Старый 10.03.2010, 23:04   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте wallstreet.
Вы так хорошо придумали с применением функции, и совершенно напрасно связываетесь с циклом, он в конструкции SQL не приемлем.
А для Вашей задачи думаю подойдет следующая конструкция:
select Avg(fldVal) from Table1 where fldDate Between DateAdd("n",-15,Now()) And Now()
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 11.03.2010, 17:28   #3
wallstreet
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 18
По умолчанию

Спасибо Вам за помощь, но что-то не получается пока..в прикрепленном файле результат.
Возможно это из-за того, что в моем поле "время" только время, т.е. 10:30:00, а dateadd() возвращает вот такой: 12.03.2010 10:30:00 и просто каким-то образом не находит нужную запись?
Изображения
Тип файла: jpg ывацывафвыа.JPG (6.3 Кб, 45 просмотров)
wallstreet вне форума Ответить с цитированием
Старый 11.03.2010, 18:05   #4
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Вы не первый кто пишет "в прикрепленном файле результат.." не выкладывая архив с файлом, попытайтесь всё же его "прикрепить"
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 11.03.2010, 18:32   #5
wallstreet
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 18
По умолчанию

Сори.. файл ниже.
wallstreet вне форума Ответить с цитированием
Старый 11.03.2010, 21:12   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Для увеличения вероятности оказания помощи, выкладывайте архив с заранее подготовленным файлом БД (подготовка подразумевает - избавление от избыточных данных, избавление от OLE объектов и сжатие средствами MS Access).
Прошу прощения не предупредил, набор Ваших данных скорее всего абсолютно не интересен участникам форума, и оплачивать входящий трафик бесполезного "размера файла" желающих мало. Избавьте образец от лишнего объема, приемлемым размером файла(архива) может быть размер ~ 200Кб.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 13.03.2010, 15:22   #7
wallstreet
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 18
По умолчанию

Сори, сжал как смог, но до 200кб все равно не могу никак дотянуть..
Вложения
Тип файла: rar G.rar (886.7 Кб, 7 просмотров)
wallstreet вне форума Ответить с цитированием
Старый 13.03.2010, 19:06   #8
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте wallstreet.
структура предложенная мной будет работоспособной после подобной корректировки
Код:
SELECT Avg(Цена) AS A
FROM AllDeals
WHERE [Время] Between (Format(DateAdd("n",-15,Now()),"hh:nn:ss")) And (Format(Now(),"hh:nn:ss"))
у меня к Вам два вопроса:
действительно используются все подключенные к проекту библиотеки, конкретно TeeChart5.ocx ?
"..сжал как смог.." Вы считаете 280000 записей в образце крайне необходимы ? (вполне хватило бы и десятка строк)
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 16.03.2010, 19:33   #9
wallstreet
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 18
По умолчанию

примного благодарю.. Все работает просто супер c Avg().. Только вот с другими функциями статистическими не хочет. К примеру со среднеквадратичным отклонением. Вот пример:

PHP код:
SELECT StDev(AllDeals.Цена) AS A
FROM AllDeals
WHERE 
(AllDeals.ВремяBetween (Format(DateAdd("n",-14,Now()),"hh:nn:ss")) And (Format(Now(),"hh:nn:ss")); 
Выдает ошибку: #Ошибка
В чем тут может быть дело?
wallstreet вне форума Ответить с цитированием
Старый 16.03.2010, 19:47   #10
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Тип данных для StDev может быть только число
Abrakadabra вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текстовый файл: повторяющиеся товары и средняя цена товаров на складе Max_Grinyuk Помощь студентам 2 19.12.2009 18:02
посчитать значение по каждой статье за определенный период для каждого листа Graver Microsoft Office Excel 5 04.12.2009 01:31
Период дроби! prosport91 Паскаль, Turbo Pascal, PascalABC.NET 0 09.06.2009 15:57