mesutd0nmez
5/30/2017 - 8:21 AM

Tanya İçin Hazırlanan SQL

Tanya İçin Hazırlanan SQL

	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