Главная страница
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.027 c
2-1186145125
Янкер
2007-08-03 16:45
2007.08.26
Как програмно переключить IE в Автономный режим и обратно


15-1185877291
savyhinst
2007-07-31 14:21
2007.08.26
[Прочессы играют в прятки] - Сенсация.ехе!


2-1185543071
kyro
2007-07-27 17:31
2007.08.26
Из за чего не получается проиграть файл медиа плеером


4-1173269115
Альберт
2007-03-07 15:05
2007.08.26
рисование в ie


2-1186042673
Voproshay
2007-08-02 12:17
2007.08.26
Кто рубит по SQL?