![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нужно составить запрос [D7, dBase, FoxPro]
ambhtr © (2007-08-03 15:42:00)Существует база, в которой есть поля: IndexOper, DtArh.
Поле DtArh типа TDateTime. В результате запроса нужно учитывать только дату.
Есть и работающий запрос:
select distinct IndexOper, cast(cast(extract(DAY from DtArh) as varchar(2))+ '.' +
cast(extract(MONTH from DtArh) as varchar(2))+ '.' +
cast(extract(YEAR from DtArh)as varchar(4)) as DATE) dt
from MyTbl.DBF
where IndexOper IN (460,461,465,466,467,468)
and DtArh > "01.07.2007"
and DtArh < "31.07.2007"
order by IndexOper, dt'
Теперь нужно в него добавить подсчет записей, т.е. COUNT(*),
Сначало, он требует GROUP BY, заменяю ORDER BY-> GROUP BY.
Тогда он пишет что имя поля dt - неправильное, а если я оставляю GROUP BY IndexOper и все, то пишет, что GROUP BY не поддерживает вычисляемые поля.
Подскажите, можно ли как-нибудь решить эту проблему?
Loginov Dmitry (2007-08-03 21:21:00) [1]> Подскажите, можно ли как-нибудь решить эту проблему?
Если используешь BDE (подозреваю, что именно так), то можно выкрутиться через sql-файл.
Сохрани скрипт из [0] в sql-файл. А количество подсчитывай так:
SELECT Count(S.*) AS RecCount FROM "C:\.....\FileName.sql" S
Desdechado (2007-08-03 20:27:00) [2]> Теперь нужно в него добавить подсчет записей, т.е. COUNT(*),
Остается выяснить, по какому полю/группе полей группировать.
_Asph (2007-08-03 17:10:00) [3]ORDER BY - существует, для упорядычевания получаемых данных, в то время как
GROUP BY - агрегирует данные. На что он вам прямо и указывает, у вас нет агрегируемых данных. COUNT в запросе, выводит число агрегированных по заданному условию записей.
Вы уж определитесь, что и главное куда? Вы хотите получить.
ambhtr (2007-08-03 16:32:00) [4]Согласен. Оговорился. Конечно - таблица.
Если я использую ORDER BY, то выдается сообщение об ошибке:
"GROUP BY is reguired when both aggregate and non-aggregate fields are used in result set."
поэтому я и заменил.
Сергей М. (2007-08-03 16:22:00) [5]
> Существует база, в которой есть поля
Нет такой "базы".
Таблица - да, в таблице есть поля.
> заменяю ORDER BY-> GROUP BY.
С какого перепугу-то ?