Запросы, планы, оптимизация запросов, ...
Модераторы: kdv, CyberMax
-
Lexid
- Сообщения: 2
- Зарегистрирован: 15 окт 2005, 01:29
Сообщение
Lexid » 15 окт 2005, 01:42
Здравсвуйте!
есть такой код.
Код: Выделить всё
select grp, min (num), max (num)
from (
select grp, num, num - rownum grp1
from (select * from ranges order by grp, num))
group by grp, grp1 ;
Но он никак не хочет исполнятся.
Ругает
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 3, char 5.
select.
вроде всё ясно как должно исполняться. но не ясно почему не исполняеться.
Помогите пожалуйста.
-
hvlad
- Разработчик Firebird
- Сообщения: 1244
- Зарегистрирован: 21 мар 2005, 10:48
Сообщение
hvlad » 15 окт 2005, 01:47
SELECT FROM SELECT (aka derived tables) есть только в FB2
-
Lexid
- Сообщения: 2
- Зарегистрирован: 15 окт 2005, 01:29
Сообщение
Lexid » 15 окт 2005, 02:55
Код: Выделить всё
select
t1.num, min(t2.num)
from ranges t1 join ranges t2 on t1.num<= t2.num
where
not exists (select num from ranges t3 where t1.num- 1 = t3.num)
and
not exists (select num from ranges t4 where t2.num+ 1 = t4.num)
group by t1.num
вот так еще можно. но как сунуть туда grp?
если написать так
Код: Выделить всё
select
t1.num, min(t2.num),grp
from ranges t1 join ranges t2 on t1.num<= t2.num
where
not exists (select num from ranges t3 where t1.num- 1 = t3.num)
and
not exists (select num from ranges t4 where t2.num+ 1 = t4.num)
group by t1.num,grp
то выводит вообще чушь
Последний раз редактировалось
Lexid 15 окт 2005, 02:59, всего редактировалось 1 раз.