110 lines
4.3 KiB
Transact-SQL
110 lines
4.3 KiB
Transact-SQL
USE [LosaGame]
|
|
GO
|
|
|
|
/****** Object: StoredProcedure [dbo].[game_practice_rank_Reward_Cursor] Script Date: 11/23/2017 12:48:42 ******/
|
|
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[game_practice_rank_Reward_Cursor]') AND type in (N'P', N'PC'))
|
|
DROP PROCEDURE [dbo].[game_practice_rank_Reward_Cursor]
|
|
GO
|
|
|
|
USE [LosaGame]
|
|
GO
|
|
|
|
/****** Object: StoredProcedure [dbo].[game_practice_rank_Reward_Cursor] Script Date: 11/23/2017 12:48:42 ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
|
|
|
|
--IF OBJECT_ID('dbo.game_practice_rank_Reward_Cursor','P') IS NOT NULL
|
|
--
|
|
-- DROP PROC dbo.game_practice_rank_Reward_Cursor
|
|
--
|
|
--GO
|
|
|
|
-- =============================================
|
|
-- Subject : dbo.game_practice_rank_Reward_Cursor
|
|
-- DBA :
|
|
-- DATE : 2015-06-17
|
|
-- Description : ÈÆ·Ã µ¥ÀÌÅÍ »ý¼º
|
|
-- =============================================
|
|
|
|
|
|
CREATE PROCEDURE [dbo].[game_practice_rank_Reward_Cursor]
|
|
@RankAStart Int, @RankAEnd Int, @RankAType Int, @RankACode Int, @RankAMent Int, @RankAPeriad Int,
|
|
@RankBStart Int, @RankBEnd Int, @RankBType Int, @RankBCode Int, @RankBMent Int, @RankBPeriad Int,
|
|
@RankCStart Int, @RankCEnd Int, @RankCType Int, @RankCCode Int, @RankCMent Int, @RankCPeriad Int,
|
|
@RankDStart Int, @RankDEnd Int, @RankDType Int, @RankDCode Int, @RankDMent Int, @RankDPeriad Int,
|
|
@RankDID varchar(20)
|
|
AS
|
|
BEGIN
|
|
/*
|
|
SET @RankAStart Int = 1, @RankAEnd Int = 2, @RankAType Int = 3, @RankACode Int = 1000039, @RankAMent Int = 1128, @RankAPeriad Int = 28
|
|
SET @RankBStart Int = 3, @RankBEnd Int = 5, @RankBType Int = 3, @RankBCode Int = 1000039, @RankBMent Int = 1128, @RankBPeriad Int = 28
|
|
SET @RankCStart Int = 6, @RankCEnd Int = 10, @RankCType Int = 3, @RankCCode Int = 1000039, @RankCMent Int = 1128, @RankCPeriad Int = 28
|
|
SET @RankDStart Int = 11, @RankDEnd Int =999999999, @RankDType Int = 3, @RankDCode Int = 1000039, @RankDMent Int = 1128, @RankDPeriad Int = 28
|
|
SET @RankDID varchar(20) = 'DeveloperK'
|
|
*/
|
|
|
|
DECLARE @sendIDX int, @receiveIDX int
|
|
SET @sendIDX = (
|
|
SELECT accountIDX
|
|
FROM [LosaGame].dbo.userMemberDB WITH(NOLOCK)
|
|
WHERE nickName=@RankDID
|
|
)
|
|
|
|
IF (@sendIDX IS NULL)
|
|
BEGIN
|
|
SET @sendIDX = (
|
|
SELECT accountIDX
|
|
FROM [LosaGame].dbo.userMemberDB WITH(NOLOCK)
|
|
WHERE nickName='DeveloperK'
|
|
)
|
|
END
|
|
|
|
DECLARE @AccountIDX INT = 0, @Ranking INT = 0
|
|
DECLARE RankingRewardCursor CURSOR FAST_FORWARD FOR
|
|
SELECT [AccountIDX], RANK()over(PARTITION BY PracticeIDX ORDER BY PracticeTime, UpdateDate) AS PracticeRank
|
|
FROM [LosaGame].[dbo].[userPracticeDB]
|
|
|
|
OPEN RankingRewardCursor
|
|
FETCH NEXT FROM RankingRewardCursor
|
|
INTO @AccountIDX, @Ranking
|
|
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
|
|
IF @RankAStart <= @Ranking AND @Ranking <= @RankAEnd
|
|
BEGIN
|
|
-- exec game_present_add_idx @sendIDX, @AccountIDX, @RankAType, @RankACode, 1, 0, 0, @RankAMent, GetDate() + @RankAPeriad, 0, 0
|
|
SELECT 1111, @sendIDX, @AccountIDX, @RankAType, @RankACode, 1, 0, 0, @RankAMent, GetDate() + @RankAPeriad, 0, 0
|
|
END
|
|
ELSE IF @RankBStart <= @Ranking AND @Ranking <= @RankBEnd
|
|
BEGIN
|
|
-- exec game_present_add_idx @sendIDX, @AccountIDX, @RankBType, @RankBCode, 1, 0, 0, @RankBMent, GetDate() + @RankBPeriad, 0, 0
|
|
SELECT 2222, @sendIDX, @AccountIDX, @RankBType, @RankBCode, 1, 0, 0, @RankBMent, GetDate() + @RankBPeriad, 0, 0
|
|
END
|
|
ELSE IF @RankCStart <= @Ranking AND @Ranking <= @RankCEnd
|
|
BEGIN
|
|
-- exec game_present_add_idx @sendIDX, @AccountIDX, @RankCType, @RankCCode, 1, 0, 0, @RankCMent, GetDate() + @RankCPeriad, 0, 0
|
|
SELECT 3333, @sendIDX, @AccountIDX, @RankCType, @RankCCode, 1, 0, 0, @RankCMent, GetDate() + @RankCPeriad, 0, 0
|
|
END
|
|
ELSE IF @RankDStart <= @Ranking AND @Ranking <= @RankDEnd
|
|
BEGIN
|
|
-- exec game_present_add_idx @sendIDX, @AccountIDX, @RankDType, @RankDCode, 1, 0, 0, @RankDMent, GetDate() + @RankDPeriad, 0, 0
|
|
SELECT 4444, @sendIDX, @AccountIDX, @RankDType, @RankDCode, 1, 0, 0, @RankDMent, GetDate() + @RankDPeriad, 0, 0
|
|
END
|
|
FETCH NEXT FROM RankingRewardCursor INTO @AccountIDX, @Ranking
|
|
END
|
|
CLOSE RankingRewardCursor
|
|
DEALLOCATE RankingRewardCursor
|
|
GO
|
|
|
|
--if OBJECT_ID('userPracticeDB_Backup') is not null
|
|
--DROP TABLE [LosaGame].[dbo].[userPracticeDB_Backup]
|
|
--SELECT * INTO [LosaGame].[dbo].[userPracticeDB_Backup]
|
|
--FROM [LosaGame].[dbo].[userPracticeDB]
|
|
--TRUNCATE TABLE [LosaGame].[dbo].[userPracticeDB]
|
|
END |