Главная страница
    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.45 MB
Время: 0.045 c
3-1178463379
WebSQLNeederr
2007-05-06 18:56
2007.08.26
Послать запрос к БД MSAccess (*.mdb)


15-1185444219
Иксик
2007-07-26 14:03
2007.08.26
Клиент для VSS


1-1180504967
Still Swamp
2007-05-30 10:02
2007.08.26
A class name TChartAxisTitle already exists


2-1185554076
master_asasin
2007-07-27 20:34
2007.08.26
ImageList - добавление картинок в RunTime


2-1186099361
Riply
2007-08-03 04:02
2007.08.26
RtlDecompressBuffer - использование в цикле.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский