USE [SURVIVAL_RUN_API_SERVER]
GO
/****** Object: StoredProcedure [dbo].[USP_memberRank_list_R] Script Date: 2018-08-01 오전 9:01:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[USP_memberRank_list_R]
(
@arenaID INT
, @o_sp_rtn INT OUTPUT
)
AS
DECLARE
@v_sp_rtn INT
, @v_sql NVARCHAR(4000)
, @v_table_name NVARCHAR(100)
, @v_userErrorMsg VARCHAR(100)
, @v_error_number INT
, @v_effect_row INT
BEGIN
SET NOCOUNT ON
SELECT @v_sp_rtn = 0;
SELECT @v_userErrorMsg = '';
SELECT @v_error_number = 0;
SELECT @v_effect_row = 0;
SELECT @o_sp_rtn = -999;
--// Check Parameters.
IF (
LEN(ISNULL(@arenaID, '')) = 0
)
BEGIN
SELECT @o_sp_rtn = -1;
RETURN;
END
SELECT TOP 1000
A.[rank]
, A.[memberUID]
, B.[nickname]
, B.[skinID]
, B.[shirtsID]
, B.[pantsID]
, B.[hairID]
, B.[faceID]
, B.[headID]
, B.[decoID]
, B.[petID]
, B.[vehicleID]
, B.[wingID]
, A.[record]
FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY [record] ASC) AS [rank]
, [memberUID]
, [arenaID]
, [record]
FROM [dbo].[memberArena] WITH(NOLOCK)
WHERE [arenaID] = @arenaID
AND [record]>0
)AS A LEFT JOIN [dbo].[memberData] AS B
ON A.[memberUID] = B.[memberUID]
[
level 에 따른 where 절 추가
]
ORDER BY A.[rank] ASC
SELECT @o_sp_rtn = 0;
END
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
안녕하세요 랭킹 조회에 사용되는 프로시저인데
유저 레벨에 따라서 해당 레벨인 유저들만 소팅을 해서 보여주는 걸로 변경하고자 합니다.
@arenaID 1 2 3 4 5 6 을 받아서 보여주는데
@arenaID =1 이면 [dbo].[memberData] 에 [level] = 10
@arenaID =2 이면 [dbo].[memberData] 에 [level] = 7 8 9
@arenaID =3 이면 [dbo].[memberData] 에 [level] = 6 7 8
이런식으로 경기장에 맞게끔 레벨 조건을 추가해 주면 되는데 잘 모르겠네요.
도움 주시면 감사하겠습니다.