BEGIN TRANSACTION
DECLARE @index int = 1
DECLARE @lenght int
select @lenght = count(*) from Tables
DECLARE @zeroTypeMoney money
DECLARE @zeroTypeIndex int
WHILE @index < @lenght
BEGIN
select @zeroTypeMoney = dbo.func_FindNextMoney2(@index) -- ilk 0 type olanın parasını al
select @zeroTypeIndex = dbo.func_FindNextIndex(@index) -- ilk 0 type olanın indexini al
-- ilk 0 type olandan bir önceki 1 indexli olanın en büyüğünün Id sini al
declare @oneindex int
select @oneindex = MAX(Id) From Tables
Where Id < @zeroTypeIndex AND Type = 1
-- ikisinide topla ve güncelle
Update Tables SET Money2 = Money2 + @zeroTypeMoney
WHERE Id = @oneindex
-- 0 indexli olanın money 2 yi null yap
Update Tables SET Money2 = null
WHERE Id = @zeroTypeIndex
SET @index = @zeroTypeIndex
END
-- SELECT * from Tables
-- COMMIT TRANSACTION
-- ROLLBACK TRANSACTION