powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка в запросе
11 сообщений из 11, страница 1 из 1
Ошибка в запросе
    #40104633
Nick00
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Написал такой запрос
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT COUNT(*) FROM
(
SELECT u.surname AS fio,
d.num AS num,
p.name AS name,
r3.num_r AS num_r
FROM doc d
LEFT JOIN users u ON doc.kod_user=users.kod_elem
LEFT JOIN pred p ON  doc.kod_pred=pred.kod_elem
LEFT JOIN rasch1 r1 ON rasch1.kod_doc=doc.kod_elem
LEFT JOIN rasch3 r3 ON rasch1.kod_elem=rasch3.kod_rasch1
WHERE d.date='12.12.2020'
ORDER BY d.num
)


При попытке выполнить выдается ошибка
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 3, char 1.
select.
Не пойму в чем проблема, ведь судя по документации InterBase поддерживает вложенные запросы. Использую InterBase 2009
...
Рейтинг: 0 / 0
Ошибка в запросе
    #40104638
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nick00,

1. Это реальный запрос или для того чтобы показать проблему? Потому что производна таблица тут на фиг не сдалась
2. Если дал таблице алиас, то его и надо использовать в условии связи, а не исходное имя таблицы
3. Называть поле ключевым словом date как минимум не разумно
4. Ты путаешь подзапросы и производные таблицы (Derived Tables), последние появились только в Interbase 2017

Если прям без Derived Tables вы прожить не можете, то либо обновляйте IB за денюжку, либо переходите на Firebird
...
Рейтинг: 0 / 0
Ошибка в запросе
    #40104641
Nick00
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос привел для демонстрации проблемы. Не подскажешь как можно посчитать число записей в подобном запросе с выборкой нескольких полей в моей версии InterBase?
...
Рейтинг: 0 / 0
Ошибка в запросе
    #40104643
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nick00,

даже там где Derived Tables есть, твой запрос не делает, то что ты хочешь. Отдельно считай COUNT, отдельно выбирай набор записей. По другому никак. Всяких там оконных функций, которые могу это в IB тоже нет
...
Рейтинг: 0 / 0
Ошибка в запросе
    #40104644
Nick00
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, Так я же хочу узнать число записей в результате выполнения запроса на выборку. Как я отдельно могу от него посчитать COUNT?
...
Рейтинг: 0 / 0
Ошибка в запросе
    #40104652
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nick00
Так я же хочу узнать число записей в результате выполнения запроса на выборку. Как я отдельно могу от него посчитать COUNT?

А чем не устраивает
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SELECT COUNT(*)
FROM doc d
LEFT JOIN users u ON doc.kod_user=users.kod_elem
LEFT JOIN pred p ON  doc.kod_pred=pred.kod_elem
LEFT JOIN rasch1 r1 ON rasch1.kod_doc=doc.kod_elem
LEFT JOIN rasch3 r3 ON rasch1.kod_elem=rasch3.kod_rasch1
WHERE d.date='12.12.2020'


Или я чего-то не вижу?
...
Рейтинг: 0 / 0
Ошибка в запросе
    #40104655
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nick00,

1. выполнить в той же SNAPSHOT транзакции подобный запрос, только вместо списка полей написать COUNT(*)
2. Запихать оба запроса внутрь ХП и сделать выборку из неё
3. На клиенте сделать FetchAll и посчитать количество отфетченных записей
4. Перейти на Firebird 3.0 или лучше 4.0 и использовать COUNT(*) OVER()

можно и ещё варианты придумать
...
Рейтинг: 0 / 0
Ошибка в запросе
    #40104656
Nick00
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m7m, спасибо
...
Рейтинг: 0 / 0
Ошибка в запросе
    #40104657
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

а ему надо одновременно значения полей получить и количество записей которые вернул запрос
...
Рейтинг: 0 / 0
Ошибка в запросе
    #40104659
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Как я отдельно могу от него посчитать COUNT?
Если транзация не снапшот, то отдельный каунт может и погоду на марсе показать.

Сфетчить все записи и подсчитать сколько сфетчилось?
...
Рейтинг: 0 / 0
Ошибка в запросе
    #40104665
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
m7m,

а ему надо одновременно значения полей получить и количество записей которые вернул запрос

Ну мой хрустальный шар на столько не работает
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка в запросе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]