Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.025 c
15-1185397599
Petr V. Abramov
2007-07-26 01:06
2007.08.26
кака отличить съедобный гриб от ядовитого?


2-1186316550
hahol
2007-08-05 16:22
2007.08.26
id3teg


15-1185793089
kernel
2007-07-30 14:58
2007.08.26
Регистрация авторского права на ПО


15-1185371357
Галинка
2007-07-25 17:49
2007.08.26
Посоветуйте книгу по Си


8-1163533089
PAN
2006-11-14 22:38
2007.08.26
Быстрая последовательная загрузка и показ изображений