Вобщем вот крутая задачка.
Нужно одним запросом вернуть все строки, если в предыдущей строке стояла 1, а в текущей 0.
Вот пример таблицы
вася 1
перя 0
маша 1
ира 1
саша 0
рита 0
вот ответ
петя 0
саша 0
Удачи...
0
Задачка..
Автор
Гость_vav_*
, 07 Jun 2005 20:33
В теме одно сообщение
#1 Гость_vav_*
Отправлено 07 June 2005 - 20:33
#2 Гость_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
Вот и все.
Успехов.
Единственое что для построения подобных запросов необходимо иметь условие,
согласно которому однозначно определяется положение строки в результате запроса.
Добавим в таблицу поле 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 анонимных