Главная страница
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.022 c
8-1163431376
maker
2006-11-13 18:22
2007.08.26
WMA Тэги


15-1185435461
Autokont
2007-07-26 11:37
2007.08.26
1С и Vista


15-1185716945
ArtemESC
2007-07-29 17:49
2007.08.26
Не подскажите название песни?


3-1178463379
WebSQLNeederr
2007-05-06 18:56
2007.08.26
Послать запрос к БД MSAccess (*.mdb)


9-1155485737
Kav
2006-08-13 20:15
2007.08.26
ODE составная геометрия