У меня есть таблица (CheckNumber) с этими данными:
ID NumberFrom NumberTo StateID
1 1 10 1
2 2 3 2
Эти числа представляют физические документы и их состояния (1 используется и 2 неприменимо). Теперь я хочу создать документ и хочучтобы узнать, какое число будет иметь документ и какие номера можно использовать.
Итак, я создал этот курсор.
Declare @numberUsage as table(accountID int,Number Int)
Declare @bankID int
Declare @stateID int
Declare @beginNumber int
Declare @endNumber int
Declare cCursor cursor for Select accountID, stateID, beginNumber,endNumber From Finances.CheckNumber
Open cCursor
Fetch cCursor Into @bankID,@stateID,@beginNumber,@endNumber
While @@FETCH_STATUS = 0
Begin
Declare @actual int
Set @actual = @beginNumber
If @stateID = 1
Begin
While @actual <= @endNumber
Begin
if not exists(Select Number From Finances.CheckNPayment Where accountID = @bankID and Number = @actual)
Begin
Insert Into @numberUsage values(@bankID,@actual)
End
Set @actual = @actual + 1
End
End
Else
Begin
While @actual <= @endNumber
Begin
Delete From @numberUsage Where accountID = @bankID And Number = @actual
Set @actual = @actual + 1
End
End
Fetch cCursor Into @bankID,@stateID,@beginNumber,@endNumber
End
Close cCursor
Deallocate cCursor
Select * From @numberUsage
Результат таков:
accountID Number
1 1
1 4
1 5
1 6
1 7
1 8
1 9
1 10
Можно ли преобразовать результат таблицы в представление?