powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Очередной запрос...
7 сообщений из 7, страница 1 из 1
Очередной запрос...
    #32004898
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет Всем !


- Исходные данные
Таблица Files(File_Name varchar, File_Status int, File_Time datetime)
Количество записей постоянное, одна система обновляет поля File_Status и File_Time в on-line режиме по принципу очереди, т.е. обновляются записи, начиная с первой по порядку, когда достигнута последняя запись, обновление вновь начинается с первой. В данный момент обновляемая запись имеет File_Status = 0

- Задача
Запрос, который возвращет записи, начиная от записи с заданным File_Name, и заканчивая за одну запись до записи со значением File_Status = 0.
...
Рейтинг: 0 / 0
Очередной запрос...
    #32004903
Можноли пронумеровать както строки ??
Если да, то

SELECT * FROM tbFiles WHERE ID < ( SELECT ID FROM tbFiles WHERE File_Status = 0 )
...
Рейтинг: 0 / 0
Очередной запрос...
    #32004906
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Записи имеют поле ID с опцией identity

2Дмитрий Голубев
Ваш запрос просто выбирает записи до записи с File_Status = 0, а меня интересует выборка от записи с заданным значением File_Name, особенно когда внешняя on-line система закончила обработку последней записи и вернулась вновь к первой

Если это текущее состояние таблицы
File1 1
File2 1
File3 1
.
.
.
File10 0
File11 1
.
.
.
File54 1 - а это, запись с которой должна начинаться выборка
.
.
File100 1

то в результате хотелось бы получить
File54, File55, File56,...File100, File1, File2, ... File9.
...
Рейтинг: 0 / 0
Очередной запрос...
    #32004907
Теперь задачка стала понятей

DECLARE @ID_From int
SET @ID_From = ( SELECT ID FROM tbTable WHERE File_Name='XXX' )
DECLARE @ID_To int
SET @ID_To = ( SELECT ID FROM tbFiles WHERE File_Status = 0 )

SELECT
*
FROM
tbTable
WHERE
( ID > @ID_From or ID < @ID_To )
ORDER BY
case
When VPUnitID > @ID_From Then 0
else 1
end
, ID

Можно и не декларировать

Удачи
...
Рейтинг: 0 / 0
Очередной запрос...
    #32004908
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какие проблеммы? Или я чего-то не понял?
declare @id1 int, @id2 int
select @id1=ID from tbFiles WHERE File_Name=@File_Name
select @id2=ID from tbFiles WHERE File_Status = 0
if @id1>@id2 select * from tbFiles WHERE ID >=@id1 or ID<@id2
else select * from tbFiles WHERE ID between @id1 and @id2-1

Можно и в один селект впихнуть, только длиннее будет
...
Рейтинг: 0 / 0
Очередной запрос...
    #32004909
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, конечно же
declare @id1 int, @id2 int
select @id1=ID from tbFiles WHERE File_Name=@File_Name
select @id2=ID from tbFiles WHERE File_Status = 0
if @id1>@id2 select * from tbFiles WHERE ID >=@id1 or ID<@id2
else select * from tbFiles WHERE ID between @id2-1 and @id1
...
Рейтинг: 0 / 0
Очередной запрос...
    #32004919
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое !
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Очередной запрос...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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