Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не работает агрегатный AVG / 3 сообщений из 3, страница 1 из 1
18.04.2008, 03:49
    #35263327
sergey_gavrilov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает агрегатный AVG
Пытаюсь получить скалярное значение AVG из фокспрошной таблицы. Выдает ошибку OLEDBExeption. Причем с командами SUM, COUNT, MIN, MAX работает нормально.

Private Function ReadAvg()
Dim ConnectionString As String = "Provider=VFPOLEDB; Data Source=" & DataBasePath
Dim QuiryAVG As String = "SELECT AVG(MicexInd) FROM NewIndex"
Dim ReturnValue As Double
Using connection As New OleDbConnection(ConnectionString)
Dim command As New OleDbCommand(QuiryAVG, connection)
connection.Open()
Dim avg As Double = command.ExecuteScalar
ReturnValue = Math.Round(avg, 2)
End Using
Return ReturnValue
End Function
...
Рейтинг: 0 / 0
18.04.2008, 07:36
    #35263397
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает агрегатный AVG
sergey_gavrilovПытаюсь получить скалярное значение AVG из фокспрошной таблицы. Выдает ошибку OLEDBExeption. Причем с командами SUM, COUNT, MIN, MAX работает нормально.

VFP OLEDB Provider тут мало кто пользует, но замечено что его работа местами отличается от работы самого VFP. А у ошибки есть текстовое описание?

В VFP AVG() работает.
Можешь обойти получив SUM() и COUNT(), затем поделить первое на второе.
...
Рейтинг: 0 / 0
18.04.2008, 11:13
    #35263870
beginner_fox
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает агрегатный AVG
Dima T sergey_gavrilovПытаюсь получить скалярное значение AVG из фокспрошной таблицы. Выдает ошибку OLEDBExeption. Причем с командами SUM, COUNT, MIN, MAX работает нормально.

VFP OLEDB Provider тут мало кто пользует, но замечено что его работа местами отличается от работы самого VFP. А у ошибки есть текстовое описание?

В VFP AVG() работает.
Можешь обойти получив SUM() и COUNT(), затем поделить первое на второе.

Небольшое уточнение:
Код: plaintext
1.
Правильно
 "SELECT sum(MicexInd)/count(MicexInd) FROM NewIndex"


Код: plaintext
1.
 "SELECT sum(MicexInd)/count(*) FROM NewIndex" 
-не правильно,если в столбце MicexInd могут быть NULL,если в столбце не могут быть NULL-то можно и так.

С уважением,
Beginner_fox.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не работает агрегатный AVG / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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