Перейти к содержимому


- - - - -

Задачка..


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 Гость_vav_*

Гость_vav_*
  • Гости

Отправлено 07 June 2005 - 20:33

Вобщем вот крутая задачка.

Нужно одним запросом вернуть все строки, если в предыдущей строке стояла 1, а в текущей 0.

Вот пример таблицы
вася 1
перя 0
маша 1
ира  1
саша 0
рита 0

вот ответ

петя 0
саша 0

Удачи...

#2 Гость_Volokola_*

Гость_Volokola_*
  • Гости

Отправлено 10 June 2005 - 14:37

Привет! Запрос не сложный.
Единственое что для построения подобных запросов необходимо иметь условие,
согласно которому однозначно определяется положение строки в результате запроса.
Добавим в таблицу поле ID - порядковый номер записи.
NAME - Имя
NUM - признак 0 или 1

select test.id
    ,test.name
    ,test.num
    ,ISNULL(t2.num,0) as num_old  
from test
Left join test as t2
      ON  t2.id =( select Max(id) from test where id < test.id)
where test.num =0 and num_old = 1

Вот и все.
Успехов.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных


Добро пожаловать!
Что бы получить полный доступ ко всем форумам, созданию тем и многому другому, пожалуйста Войдите или Зарегистрируйтесь.
Вы можете не тратить время на скучную анкету, а просто войти с помощью вашей любимой социальной сети в правом верхнем углу ;)