powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Перевод запроса из MySQL в запрос Firebird
9 сообщений из 9, страница 1 из 1
Перевод запроса из MySQL в запрос Firebird
    #38885306
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть запрос MySQL:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT pr_contr.nprot, pr_contr.datap, spr_vid.vid,
pr_poruch.npor, pr_poruch.text, pr_poruch.srok,
GROUP_CONCAT(IF(dataf,CONCAT(spr_otv.fio," (выполнено: ",DATE_FORMAT(pr_otv.dataf,"%d.%m.%Y"),")"),spr_otv.fio) ORDER BY spr_otv.fio ASC SEPARATOR "; ") AS otv
FROM pr_contr
INNER JOIN spr_vid ON pr_contr.vid = spr_vid.id
RIGHT OUTER JOIN pr_poruch ON pr_poruch.id_prot = pr_contr.id
RIGHT OUTER JOIN pr_otv ON pr_otv.id_poruch = pr_poruch.id
INNER JOIN spr_otv ON pr_otv.id_otv = spr_otv.id
WHERE pr_contr.id = 1
GROUP BY pr_poruch.npor
ORDER BY pr_poruch.npor



его нужно перевести под Firebird. Помогите, плз!

------------------------------
С уважением, StasK
...
Рейтинг: 0 / 0
Перевод запроса из MySQL в запрос Firebird
    #38885316
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Stask!
You wrote on 20 февраля 2015 г. 17:53:19:

Stask> его нужно перевести под Firebird. Помогите, плз!
что именно не получилось?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перевод запроса из MySQL в запрос Firebird
    #38885317
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StasK,

покажи как пытался записать в FB. Двойные кавычки замени на одинарные. Вместо дурацкого CONCAT есть нормальная операция конкатенации строк ||. Аналог GROUP_CONCAT будет LIST, за исключением того что в LIST нельзя задать порядок, но это обходится DT или CTE.
...
Рейтинг: 0 / 0
Перевод запроса из MySQL в запрос Firebird
    #38885323
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробовал так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT pr_contr.nprot, pr_contr.datap, spr_vid.vid,
pr_poruch.npor, pr_poruch.text, pr_poruch.srok,
LIST(IIF(pr_otv.dataf IS NOT NULL,(spr_otv.fio || ' (выполнено: ' || CAST(lpad(EXTRACT(DAY FROM pr_otv.dataf),2,'0') AS varchar(2)) || '.' || CAST(lpad(EXTRACT(MONTH FROM pr_otv.dataf),2,'0') AS varchar(2)) || '.' || EXTRACT(YEAR FROM pr_otv.dataf) || ')'), spr_otv.fio), '; ') AS otv
FROM pr_contr
INNER JOIN spr_vid ON pr_contr.vid = spr_vid.id
RIGHT OUTER JOIN pr_poruch ON pr_poruch.id_prot = pr_contr.id
RIGHT OUTER JOIN pr_otv ON pr_otv.id_poruch = pr_poruch.id
INNER JOIN spr_otv ON pr_otv.id_otv = spr_otv.id
WHERE pr_contr.id = 1
GROUP BY pr_poruch.npor
ORDER BY pr_poruch.npor



ошибка:

Код: sql
1.
2.
3.
4.
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
...
Рейтинг: 0 / 0
Перевод запроса из MySQL в запрос Firebird
    #38885324
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
невзлетит. группировка не по всем полям SELECT
...
Рейтинг: 0 / 0
Перевод запроса из MySQL в запрос Firebird
    #38885325
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StasK,

Firebird не выполняет кривые запросы. Все поля необвёрнутые в агрегатные функции должны быть в GROUP BY
...
Рейтинг: 0 / 0
Перевод запроса из MySQL в запрос Firebird
    #38885327
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавил:

Код: sql
1.
2.
GROUP BY pr_poruch.npor, pr_contr.datap, spr_vid.vid, pr_poruch.npor, pr_poruch.text, pr_poruch.srok
ORDER BY pr_poruch.npor



ошибка та же...
...
Рейтинг: 0 / 0
Перевод запроса из MySQL в запрос Firebird
    #38885329
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StasKдобавил:

Код: sql
1.
2.
GROUP BY pr_poruch.npor, pr_contr.datap, spr_vid.vid, pr_poruch.npor, pr_poruch.text, pr_poruch.srok
ORDER BY pr_poruch.npor



ошибка та же...

GROUP BY pr_poruch.nprot, pr_contr.datap, spr_vid.vid, pr_poruch.npor, pr_poruch.text, pr_poruch.srok
ORDER BY pr_poruch.npor
...
Рейтинг: 0 / 0
Перевод запроса из MySQL в запрос Firebird
    #38885330
Фотография StasK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Благодарю! А слона-то я и не заметил...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Перевод запроса из MySQL в запрос Firebird
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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