powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как сделать селект?
8 сообщений из 8, страница 1 из 1
Как сделать селект?
    #34195275
Помогите пожалуйста сделать селект. Есть таблица

table
F1 , F2
10.11.2006,'text1'
11.11.2006,'text1'
15.11.2006,'text2'
22.11.2006,'text3'
.....

Как получить результат:
10.11.2006,11.11.2006, 'text1'
11.11.2006,15.11.2006, 'text1'
15.11.2006,22.11.2006, 'text1'
22.11.2006,.....'text1'

И как получить такой результат:
10.11.2006,11.11.2006, 'text1', 'text1'
15.11.2006,22.11.2006, 'text2', 'text3'
...
Спасибо заранее. Сервер Sybase IQ 12.5
...
Рейтинг: 0 / 0
Как сделать селект?
    #34195389
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КилиманджароКак получить результат:
10.11.2006,11.11.2006, 'text1'
11.11.2006,15.11.2006, 'text1'
15.11.2006,22.11.2006, 'text1'
22.11.2006,.....'text1'
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select v0.f1 as new_f1, 
       (
         select min(f1)
           from sqf_test v2
          where v2.f1 > v0.f1
       ) new_f2,
       v1.f2 as new_f3
  from sqf_test v0
 cross join
       (
         select f2
           from sqf_test
          where f1 = (select min(f1) from sqf_test) 
       ) v1


КилиманджароИ как получить такой результат:
10.11.2006,11.11.2006, 'text1', 'text1'
15.11.2006,22.11.2006, 'text2', 'text3'
...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
select v1.f1 as new_f1,
       v2.f1 as new_f2,
       v1.f2 as new_f3,
       v2.f2 as new_f4
  from (
         select f1, f2,
                (
                  select count( 1 )
                    from sqf_test v3
                   where v0.f1 >= v3.f1
                ) rn
           from sqf_test v0 where rownum >=  1 
       ) v1
  left outer join
      (
         select f1, f2,
                (
                  select count( 1 )
                    from sqf_test v3
                   where v0.f1 >= v3.f1
                ) rn
           from sqf_test v0 where rownum >=  1 
       ) v2
    on v1.rn = v2.rn -  1 
 where v1.rn %  2  =  1 
...
Рейтинг: 0 / 0
Как сделать селект?
    #34196298
Проблема в том, что моя версия IQ не работает нормально с субселектами. Так что, похоже, без stored procedure не обоитись...
...
Рейтинг: 0 / 0
Как сделать селект?
    #34196393
Zetus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что значит не нормально? Можно озвучить номер ошибки и текст тоже было бы неплохо...
...
Рейтинг: 0 / 0
Как сделать селект?
    #34196421
Subqueries are allowed only as arguments of comparisions,In, and Exists subquery Select/union

Это не ошибка, это ограничение старой версии IQ
...
Рейтинг: 0 / 0
Как сделать селект?
    #34196422
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рез. №1

Код: plaintext
1.
2.
3.
4.
select t1.f1, 
   (select min(t2.f1) from t as t2 where t2.f1>t1.f1 ) as "next_f1",
   t1.f2
from t as t2
...
Рейтинг: 0 / 0
Как сделать селект?
    #34198433
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KилиманджароSubqueries are allowed only as arguments of comparisions,In, and Exists subquery Select/union

Это не ошибка, это ограничение старой версии IQВот без подзапросов:

1)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select t1.f1 as new_f1, 
       min(t2.f1) as new_f2, 
       t1.f2 as new_f3
  from sqf_table t1
  left outer join
       sqf_table t2
    on t1.f1 < t2.f1
 group by t1.f1, t1.f2


2)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select t1.f1 as new_f1, 
       min(t2.f1) as new_f2, 
       t1.f2 as new_f3,
       min(t2.f2) as new_f4 -- тут нужно немного доделать, иначе в общем случае будет выдавать фигню...
  from sqf_table t1
  left outer join
       sqf_table t2
    on t1.f1 < t2.f1
 group by t1.f1, t1.f2
having count(t2.f1) %  2  =  1 
...
Рейтинг: 0 / 0
Как сделать селект?
    #34198541
Спасибо Сергей!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как сделать селект?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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