| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > СУБД, общие вопросы > Ошибка в запросе |
| Автор: AlexanderI 13.4.2007, 10:13 | ||
| Никак не пойму в чём дело. В компанент Query в Delphi (база Paradox) создаю запрос
выдаётся ошибка: Invalid field name YD Хочу подсчитать Сумму всех Nomsf за каждый месяц 2007 года. |
| Автор: ТоляМБА 13.4.2007, 10:20 | ||||
DISTINCT ффтопку - у тебя же группировка!
Добавлено через 2 минуты и 31 секунду Т.е. конечный вид запроса:
|
| Автор: AlexanderI 13.4.2007, 10:28 | ||
Не работает
Ошибка: Capability not supported |
| Автор: ТоляМБА 13.4.2007, 10:51 | ||
Хм. А вот так вообще-то сработает?
|
| Автор: AlexanderI 13.4.2007, 10:56 |
| Да. Это всё работает. Выводит номер месяца столько раз, сколько всего записей. Там вся загвоздка в SELECT EXTRACT(MONTH FROM Date3), Потомучто когда вместо этого подставляю другое поле, например SELECT tip, то групировка проходит нормально. Может както сгрупировать на по названию поля а как-нибудь по номеру поля и др. ? |
| Автор: skyboy 13.4.2007, 10:57 | ||||||
| AlexanderI, меняй engine на что-нить удобоваримое(см. список СУБД в темах "Помогите выбрать..."). Насколько мне помнится, даже не Paradox, как формат хранения, а сам язык LocalSQL не поддерживает группировку по результатам работы функций. Если надо файловая СУБД, то выбор достаточно широк: минимал-комплект http://www.componentace.com/bde_replacement_database_delphi_absolute_database.htm(не надо даже дополнительных dll, а БД может быть встроена в виде ресурса внутрь ЕЧЕшника - если тебе не нужна запись в эту базу, то такая фича может привести в восторг) монстр в плане соотношения качества/объем- http://www.sqlite.org(для поддержки надо таскать одну небольшую dll) http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_download_15 - для скачки АЖ 2 Мб(против 25 Мб для BDE Administrator ;)); все возможности "взрослого" серверного брата(например, UDF в DLL, транзакции и прочее) в наличии. --------------------- Если же совсем извращенец
если бы не одно "Но" - LocalSQL и подзапросы не понимает. Потому надо будет подзапрос
вынести в отдельный sql-файл. Например, с именем "some.sql" и тогда "внешний" запрос изменится:
Ну, что выбираешь - разум или проклятие localSQL? |
| Автор: AlexanderI 13.4.2007, 11:12 | ||
| Блин Чтото в запросе
Выдаёт ошибку: Invalid use of keyword Неужели и это не прокатит ? |
| Автор: skyboy 13.4.2007, 11:39 | ||||
а запросы
и
проходят? мож, я опечатался, когда писал... зы Ты всё-таки решил пойти по дороги боли и страданий? |
| Автор: SergeBS 16.4.2007, 10:01 |
| AlexanderI, Если очень хочется извратиться, то попробуй ADOquery подключить - там более другой SQL (от M$) и может прокатит подзапрос. Но я этого не проверял - так, мысль вслух. А еще можешь попробовать вычисляемое поле и по нему орудовать. |