Текущий архив: 2007.08.26;
Скачать: CL | DM;
ВнизНужно составить запрос Найти похожие ветки
← →
ambhtr (2007-08-03 15:42) [0]Существует база, в которой есть поля: 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 не поддерживает вычисляемые поля.
Подскажите, можно ли как-нибудь решить эту проблему?
← →
Сергей М. © (2007-08-03 16:22) [1]
> Существует база, в которой есть поля
Нет такой "базы".
Таблица - да, в таблице есть поля.
> заменяю ORDER BY-> GROUP BY.
С какого перепугу-то ?
← →
ambhtr (2007-08-03 16:32) [2]Согласен. Оговорился. Конечно - таблица.
Если я использую ORDER BY, то выдается сообщение об ошибке:
"GROUP BY is reguired when both aggregate and non-aggregate fields are used in result set."
поэтому я и заменил.
← →
_Asph © (2007-08-03 17:10) [3]ORDER BY - существует, для упорядычевания получаемых данных, в то время как
GROUP BY - агрегирует данные. На что он вам прямо и указывает, у вас нет агрегируемых данных. COUNT в запросе, выводит число агрегированных по заданному условию записей.
Вы уж определитесь, что и главное куда? Вы хотите получить.
← →
Desdechado © (2007-08-03 20:27) [4]> Теперь нужно в него добавить подсчет записей, т.е. COUNT(*),
Остается выяснить, по какому полю/группе полей группировать.
← →
Loginov Dmitry © (2007-08-03 21:21) [5]> Подскажите, можно ли как-нибудь решить эту проблему?
Если используешь BDE (подозреваю, что именно так), то можно выкрутиться через sql-файл.
Сохрани скрипт из [0] в sql-файл. А количество подсчитывай так:
SELECT Count(S.*) AS RecCount FROM "C:\.....\FileName.sql" S
Страницы: 1 вся ветка
Текущий архив: 2007.08.26;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.045 c