Ranking DBF

    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Nehmt doch gleich die Offi RankingDB.

      Quellcode

      1. CREATE TABLE [dbo].[RANKING_TBL] (
      2. [order] [int] NULL ,
      3. [order_all] [int] NULL ,
      4. [Gu] [char] (2) NOT NULL ,
      5. [s_date] [char] (10) NOT NULL ,
      6. [serverindex] [char] (2) NOT NULL ,
      7. [m_dwLogo] [int] NULL ,
      8. [m_idGuild] [char] (6) NOT NULL ,
      9. [m_szGuild] [varchar] (48) NULL ,
      10. [m_szName] [varchar] (32) NULL ,
      11. [m_nWin] [int] NULL ,
      12. [m_nLose] [int] NULL ,
      13. [m_nSurrender] [int] NULL ,
      14. [m_MaximumUnity] [float] NULL ,
      15. [m_AvgLevel] [float] NULL ,
      16. [m_nGuildGold] [bigint] NULL ,
      17. [m_nWinPoint] [int] NULL ,
      18. [m_nPlayTime] [int] NULL ,
      19. [CreateTime] [datetime] NULL
      20. ) ON [PRIMARY]
      21. GO
      22. CREATE PROC RANKING_STR
      23. @iGu CHAR(2) = 'R1',
      24. @iserverindex CHAR(2) = '01'
      25. AS
      26. DECLARE @os_date CHAR(10)
      27. SELECT @os_date = MAX(s_date) FROM RANKING_TBL WHERE Gu = @iGu AND serverindex = @iserverindex
      28. DECLARE @orderby VARCHAR(255)
      29. --R1 : 최강길드
      30. --R2 : 최다승
      31. --R3 : 최다패
      32. --R4 : 최다항복패
      33. --R5 : 최고결속력
      34. --R6 : 최고자금
      35. --R7 : 평균고랩
      36. --R8 : 최대플레이
      37. SELECT @orderby = CASE @iGu WHEN 'R1' THEN ' ORDER BY m_nWinPoint DESC,m_nWin DESC'
      38. WHEN 'R2' THEN ' ORDER BY m_nWin DESC,CreateTime'
      39. WHEN 'R3' THEN ' ORDER BY m_nLose DESC,m_nSurrender DESC'
      40. WHEN 'R4' THEN ' ORDER BY m_nSurrender DESC,m_nLose DESC'
      41. WHEN 'R5' THEN ' ORDER BY m_MaximumUnity DESC,CreateTime'
      42. WHEN 'R6' THEN ' ORDER BY m_nGuildGold DESC,CreateTime'
      43. WHEN 'R7' THEN ' ORDER BY m_AvgLevel DESC,CreateTime'
      44. WHEN 'R8' THEN ' ORDER BY m_nPlayTime DESC,CreateTime' END
      45. EXEC
      46. (
      47. 'SELECT TOP 20 [order],Gu,s_date,serverindex,m_dwLogo,m_idGuild,m_szGuild,m_szName,
      48. m_nWin,m_nLose,m_nSurrender,m_MaximumUnity,m_AvgLevel,
      49. m_nGuildGold,m_nWinPoint,m_nPlayTime,CreateTime
      50. FROM RANKING_TBL
      51. WHERE Gu = ''' + @iGu + '''
      52. AND serverindex = ''' + @iserverindex + '''
      53. AND s_date = ''' + @os_date + '''' + @orderby
      54. )
      55. RETURN
      56. CREATE proc usp_guildbank_log_view
      57. @iGu char(2) = 'S1',
      58. @im_idGuild char(6) = '01',
      59. @iserverindex CHAR(2) = ''
      60. AS
      61. SET NOCOUNT ON
      62. declare @q1 nvarchar(4000)
      63. declare @q2 nvarchar(4000)
      64. IF @iGu = 'S1'
      65. BEGIN
      66. set @q1 = '
      67. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      68. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      69. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''A'' ORDER BY s_date DESC'
      70. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      71. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      72. END
      73. /*
      74. 넣기 A 빼기 D 돈넣기 I 돈빼기 O
      75. */
      76. ELSE
      77. IF @iGu = 'S2'
      78. BEGIN
      79. set @q1 = '
      80. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      81. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      82. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''D'' ORDER BY s_date DESC'
      83. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      84. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      85. END
      86. /*
      87. */
      88. ELSE
      89. IF @iGu = 'S3'
      90. BEGIN
      91. set @q1 = '
      92. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      93. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      94. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''I'' ORDER BY s_date DESC'
      95. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      96. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      97. END
      98. /*
      99. */
      100. ELSE
      101. IF @iGu = 'S4'
      102. BEGIN
      103. set @q1 = '
      104. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      105. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      106. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''O'' ORDER BY s_date DESC'
      107. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      108. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      109. END
      110. /*
      111. */
      112. RETURN
      Alles anzeigen


      Damit die RANKING_TBL auch gefüllt werden kann, könnt ihr die MAKE_RANKING_STR in die CHARACTER_01_DBF einfügen:

      Quellcode

      1. CREATE PROC MAKE_RANKING_STR
      2. @iserverindex CHAR(2) = '01'
      3. AS
      4. set nocount on
      5. DECLARE @currDate char(10),@om_nCount INT,@of_nCount INT
      6. SET @currDate = CONVERT(CHAR(8),GETDATE(),112)
      7. + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(hh,GETDATE())),2)
      8. -- + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(mi,GETDATE())),2)
      9. --R1 : 최강길드
      10. --R2 : 최다승
      11. --R3 : 최다패
      12. --R4 : 최다항복패
      13. --R5 : 최고결속력
      14. --R6 : 최고자금
      15. --R7 : 평균고랩
      16. --R8 : 최대플레이
      17. --SELECT * FROM RANKING.RANKING_DBF.dbo.RANKING_TBL
      18. --DELETE RANKING.RANKING_DBF.dbo.RANKING_TBL
      19. --R1 : 최강길드
      20. IF EXISTS(SELECT * FROM RANKING.RANKING_DBF.dbo.RANKING_TBL WHERE s_date = @currDate and serverindex = @iserverindex)
      21. BEGIN
      22. DELETE RANKING.RANKING_DBF.dbo.RANKING_TBL WHERE s_date = @currDate and serverindex = @iserverindex
      23. END
      24. BEGIN
      25. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      26. (
      27. Gu, s_date,
      28. serverindex,
      29. m_dwLogo,
      30. m_idGuild,
      31. m_szGuild,
      32. m_szName,
      33. m_nWin,
      34. m_nLose,
      35. m_nSurrender,
      36. m_MaximumUnity,
      37. m_AvgLevel,
      38. m_nGuildGold,
      39. m_nWinPoint,
      40. m_nPlayTime,
      41. CreateTime
      42. )
      43. SELECT TOP 20 Gu = 'R1',s_date = @currDate,-- m_Title = '최강길드',
      44. serverindex = MAX(A.serverindex),
      45. m_dwLogo = MAX(A.m_dwLogo),
      46. B.m_idGuild,
      47. m_szGuild = MAX(A.m_szGuild),
      48. m_szName = MAX(C.m_szName),
      49. m_nWin = MAX(A.m_nWin),
      50. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      51. m_nSurrender = MAX(A.m_nSurrender),
      52. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      53. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      54. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      55. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      56. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      57. CreateTime = MAX(A.CreateTime)
      58. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      59. WHERE A.m_idGuild = B.m_idGuild
      60. AND A.serverindex = E.serverindex
      61. AND C.m_idPlayer = E.m_idPlayer
      62. AND B.m_nMemberLv = 0
      63. AND B.m_idPlayer = C.m_idPlayer
      64. AND A.serverindex = B.serverindex
      65. AND B.serverindex = C.serverindex
      66. AND C.serverindex = @iserverindex
      67. AND D.m_chLoginAuthority ='F'
      68. AND C.account = D.account
      69. GROUP BY B.m_idGuild
      70. ORDER BY m_nWinPoint DESC,m_nWin DESC
      71. --R2 : 최다승
      72. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      73. (
      74. Gu, s_date,
      75. serverindex,
      76. m_dwLogo,
      77. m_idGuild,
      78. m_szGuild,
      79. m_szName,
      80. m_nWin,
      81. m_nLose,
      82. m_nSurrender,
      83. m_MaximumUnity,
      84. m_AvgLevel,
      85. m_nGuildGold,
      86. m_nWinPoint,
      87. m_nPlayTime,
      88. CreateTime
      89. )
      90. SELECT TOP 20 Gu = 'R2',s_date = @currDate,--m_Title = '최다승',
      91. serverindex = MAX(A.serverindex),
      92. m_dwLogo = MAX(A.m_dwLogo),
      93. B.m_idGuild,
      94. m_szGuild = MAX(A.m_szGuild),
      95. m_szName = MAX(C.m_szName),
      96. m_nWin = MAX(A.m_nWin),
      97. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      98. m_nSurrender = MAX(A.m_nSurrender),
      99. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      100. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      101. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      102. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      103. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      104. CreateTime = MAX(A.CreateTime)
      105. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      106. WHERE A.m_idGuild = B.m_idGuild
      107. AND A.serverindex = E.serverindex
      108. AND C.m_idPlayer = E.m_idPlayer
      109. AND B.m_nMemberLv = 0
      110. AND B.m_idPlayer = C.m_idPlayer
      111. AND A.serverindex = B.serverindex
      112. AND B.serverindex = C.serverindex
      113. AND C.serverindex = @iserverindex
      114. AND D.m_chLoginAuthority = 'F'
      115. AND C.account = D.account
      116. GROUP BY B.m_idGuild
      117. ORDER BY m_nWin DESC,CreateTime
      118. --R3 : 최다패
      119. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      120. (
      121. Gu, s_date,
      122. serverindex,
      123. m_dwLogo,
      124. m_idGuild,
      125. m_szGuild,
      126. m_szName,
      127. m_nWin,
      128. m_nLose,
      129. m_nSurrender,
      130. m_MaximumUnity,
      131. m_AvgLevel,
      132. m_nGuildGold,
      133. m_nWinPoint,
      134. m_nPlayTime,
      135. CreateTime
      136. )
      137. SELECT TOP 20 Gu = 'R3',s_date = @currDate,-- m_Title = '최다패',
      138. serverindex = MAX(A.serverindex),
      139. m_dwLogo = MAX(A.m_dwLogo),
      140. B.m_idGuild,
      141. m_szGuild = MAX(A.m_szGuild),
      142. m_szName = MAX(C.m_szName),
      143. m_nWin = MAX(A.m_nWin),
      144. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      145. m_nSurrender = MAX(A.m_nSurrender),
      146. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      147. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      148. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      149. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      150. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      151. CreateTime = MAX(A.CreateTime)
      152. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      153. WHERE A.m_idGuild = B.m_idGuild
      154. AND A.serverindex = E.serverindex
      155. AND C.m_idPlayer = E.m_idPlayer
      156. AND B.m_nMemberLv = 0
      157. AND B.m_idPlayer = C.m_idPlayer
      158. AND A.serverindex = B.serverindex
      159. AND B.serverindex = C.serverindex
      160. AND C.serverindex = @iserverindex
      161. AND D.m_chLoginAuthority = 'F'
      162. AND C.account = D.account
      163. GROUP BY B.m_idGuild
      164. ORDER BY m_nLose DESC,m_nSurrender DESC
      165. --R4 : 최다항복패
      166. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      167. (
      168. Gu, s_date,
      169. serverindex,
      170. m_dwLogo,
      171. m_idGuild,
      172. m_szGuild,
      173. m_szName,
      174. m_nWin,
      175. m_nLose,
      176. m_nSurrender,
      177. m_MaximumUnity,
      178. m_AvgLevel,
      179. m_nGuildGold,
      180. m_nWinPoint,
      181. m_nPlayTime,
      182. CreateTime
      183. )
      184. SELECT TOP 20 Gu = 'R4',s_date = @currDate,-- m_Title = '최다항복패',
      185. serverindex = MAX(A.serverindex),
      186. m_dwLogo = MAX(A.m_dwLogo),
      187. B.m_idGuild,
      188. m_szGuild = MAX(A.m_szGuild),
      189. m_szName = MAX(C.m_szName),
      190. m_nWin = MAX(A.m_nWin),
      191. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      192. m_nSurrender = MAX(A.m_nSurrender),
      193. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      194. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      195. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      196. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      197. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      198. CreateTime = MAX(A.CreateTime)
      199. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      200. WHERE A.m_idGuild = B.m_idGuild
      201. AND A.serverindex = E.serverindex
      202. AND C.m_idPlayer = E.m_idPlayer
      203. AND B.m_nMemberLv = 0
      204. AND B.m_idPlayer = C.m_idPlayer
      205. AND A.serverindex = B.serverindex
      206. AND B.serverindex = C.serverindex
      207. AND C.serverindex = @iserverindex
      208. AND D.m_chLoginAuthority = 'F'
      209. AND C.account = D.account
      210. GROUP BY B.m_idGuild
      211. ORDER BY m_nSurrender DESC,m_nLose DESC
      212. --R5 : 최고결속력
      213. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      214. (
      215. Gu, s_date,
      216. serverindex,
      217. m_dwLogo,
      218. m_idGuild,
      219. m_szGuild,
      220. m_szName,
      221. m_nWin,
      222. m_nLose,
      223. m_nSurrender,
      224. m_MaximumUnity,
      225. m_AvgLevel,
      226. m_nGuildGold,
      227. m_nWinPoint,
      228. m_nPlayTime,
      229. CreateTime
      230. )
      231. SELECT TOP 20 Gu = 'R5',s_date = @currDate,-- m_Title = '최고결속력',
      232. serverindex = MAX(A.serverindex),
      233. m_dwLogo = MAX(A.m_dwLogo),
      234. B.m_idGuild,
      235. m_szGuild = MAX(A.m_szGuild),
      236. m_szName = MAX(C.m_szName),
      237. m_nWin = MAX(A.m_nWin),
      238. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      239. m_nSurrender = MAX(A.m_nSurrender),
      240. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      241. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      242. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      243. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      244. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      245. CreateTime = MAX(A.CreateTime)
      246. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      247. WHERE A.m_idGuild = B.m_idGuild
      248. AND A.serverindex = E.serverindex
      249. AND C.m_idPlayer = E.m_idPlayer
      250. AND B.m_nMemberLv = 0
      251. AND B.m_idPlayer = C.m_idPlayer
      252. AND A.serverindex = B.serverindex
      253. AND B.serverindex = C.serverindex
      254. AND C.serverindex = @iserverindex
      255. AND D.m_chLoginAuthority = 'F'
      256. AND C.account = D.account
      257. GROUP BY B.m_idGuild
      258. ORDER BY m_MaximumUnity DESC,CreateTime
      259. --R6 : 최고자금
      260. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      261. (
      262. Gu, s_date,
      263. serverindex,
      264. m_dwLogo,
      265. m_idGuild,
      266. m_szGuild,
      267. m_szName,
      268. m_nWin,
      269. m_nLose,
      270. m_nSurrender,
      271. m_MaximumUnity,
      272. m_AvgLevel,
      273. m_nGuildGold,
      274. m_nWinPoint,
      275. m_nPlayTime,
      276. CreateTime
      277. )
      278. select top 20 *
      279. from (
      280. SELECT TOP 20 Gu = 'R6', s_date = @currDate,-- m_Title = '최고자금',
      281. serverindex = MAX(A.serverindex),
      282. m_dwLogo = MAX(A.m_dwLogo),
      283. B.m_idGuild,
      284. m_szGuild = MAX(A.m_szGuild),
      285. m_szName = MAX(C.m_szName),
      286. m_nWin = MAX(A.m_nWin),
      287. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      288. m_nSurrender = MAX(A.m_nSurrender),
      289. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      290. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      291. m_nGuildGold = ISNULL(MAX(dbo.fn_GuildGold(A.m_nGuildGold)),0),
      292. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      293. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      294. CreateTime = MAX(A.CreateTime)
      295. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      296. WHERE A.m_idGuild = B.m_idGuild
      297. AND A.serverindex = E.serverindex
      298. AND C.m_idPlayer = E.m_idPlayer
      299. AND B.m_nMemberLv = 0
      300. AND B.m_idPlayer = C.m_idPlayer
      301. AND A.serverindex = B.serverindex
      302. AND B.serverindex = C.serverindex
      303. AND C.serverindex = @iserverindex
      304. AND D.m_chLoginAuthority = 'F'
      305. AND C.account = D.account
      306. and A.m_nGuildGold > 0
      307. GROUP BY B.m_idGuild
      308. ORDER BY m_nGuildGold DESC,CreateTime
      309. /*union all
      310. SELECT TOP 20 Gu = 'R6', s_date = @currDate,-- m_Title = '최고자금',
      311. serverindex = MAX(A.serverindex),
      312. m_dwLogo = MAX(A.m_dwLogo),
      313. B.m_idGuild,
      314. m_szGuild = MAX(A.m_szGuild),
      315. m_szName = MAX(C.m_szName),
      316. m_nWin = MAX(A.m_nWin),
      317. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      318. m_nSurrender = MAX(A.m_nSurrender),
      319. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      320. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      321. -- m_nGuildGold = ISNULL(MAX(A.m_nGuildGold + 4294967295),0),
      322. m_nGuildGold = isnull(max(dbo.fn_GuildGold(A.m_nGuildGold)), 0),
      323. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      324. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      325. CreateTime = MAX(A.CreateTime)
      326. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      327. WHERE A.m_idGuild = B.m_idGuild
      328. AND A.serverindex = E.serverindex
      329. AND C.m_idPlayer = E.m_idPlayer
      330. AND B.m_nMemberLv = 0
      331. AND B.m_idPlayer = C.m_idPlayer
      332. AND A.serverindex = B.serverindex
      333. AND B.serverindex = C.serverindex
      334. AND C.serverindex = @iserverindex
      335. AND D.m_chLoginAuthority = 'F'
      336. AND C.account = D.account
      337. and A.m_nGuildGold < 0
      338. GROUP BY B.m_idGuild
      339. ORDER BY A.m_nGuildGold DESC,CreateTime*/)x
      340. order by m_nGuildGold desc, CreateTime
      341. /*SELECT TOP 20 Gu = 'R6',s_date = @currDate,-- m_Title = '최고자금',
      342. serverindex = MAX(A.serverindex),
      343. m_dwLogo = MAX(A.m_dwLogo),
      344. B.m_idGuild,
      345. m_szGuild = MAX(A.m_szGuild),
      346. m_szName = MAX(C.m_szName),
      347. m_nWin = MAX(A.m_nWin),
      348. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      349. m_nSurrender = MAX(A.m_nSurrender),
      350. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      351. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      352. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      353. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      354. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      355. CreateTime = MAX(A.CreateTime)
      356. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      357. WHERE A.m_idGuild = B.m_idGuild
      358. AND A.serverindex = E.serverindex
      359. AND C.m_idPlayer = E.m_idPlayer
      360. AND B.m_nMemberLv = 0
      361. AND B.m_idPlayer = C.m_idPlayer
      362. AND A.serverindex = B.serverindex
      363. AND B.serverindex = C.serverindex
      364. AND C.serverindex = @iserverindex
      365. AND D.m_chLoginAuthority = 'F'
      366. AND C.account = D.account
      367. GROUP BY B.m_idGuild
      368. ORDER BY m_nGuildGold DESC,CreateTime
      369. */
      370. --R7 : 평균고랩
      371. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      372. (
      373. Gu, s_date,
      374. serverindex,
      375. m_dwLogo,
      376. m_idGuild,
      377. m_szGuild,
      378. m_szName,
      379. m_nWin,
      380. m_nLose,
      381. m_nSurrender,
      382. m_MaximumUnity,
      383. m_AvgLevel,
      384. m_nGuildGold,
      385. m_nWinPoint,
      386. m_nPlayTime,
      387. CreateTime
      388. )
      389. SELECT TOP 20 Gu = 'R7',s_date = @currDate,-- m_Title = '평균고랩',
      390. serverindex = MAX(A.serverindex),
      391. m_dwLogo = MAX(A.m_dwLogo),
      392. B.m_idGuild,
      393. m_szGuild = MAX(A.m_szGuild),
      394. m_szName = MAX(C.m_szName),
      395. m_nWin = MAX(A.m_nWin),
      396. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      397. m_nSurrender = MAX(A.m_nSurrender),
      398. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      399. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      400. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      401. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      402. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      403. CreateTime = MAX(A.CreateTime)
      404. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      405. WHERE A.m_idGuild = B.m_idGuild
      406. AND A.serverindex = E.serverindex
      407. AND C.m_idPlayer = E.m_idPlayer
      408. AND B.m_nMemberLv = 0
      409. AND B.m_idPlayer = C.m_idPlayer
      410. AND A.serverindex = B.serverindex
      411. AND B.serverindex = C.serverindex
      412. AND C.serverindex = @iserverindex
      413. AND D.m_chLoginAuthority = 'F'
      414. AND C.account = D.account
      415. GROUP BY B.m_idGuild
      416. ORDER BY m_AvgLevel DESC,CreateTime
      417. --R8 : 최대플레이
      418. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      419. (
      420. Gu, s_date,
      421. serverindex,
      422. m_dwLogo,
      423. m_idGuild,
      424. m_szGuild,
      425. m_szName,
      426. m_nWin,
      427. m_nLose,
      428. m_nSurrender,
      429. m_MaximumUnity,
      430. m_AvgLevel,
      431. m_nGuildGold,
      432. m_nWinPoint,
      433. m_nPlayTime,
      434. CreateTime
      435. )
      436. SELECT TOP 20 Gu = 'R8',s_date = @currDate,-- m_Title = '평균고랩',
      437. serverindex = MAX(A.serverindex),
      438. m_dwLogo = MAX(A.m_dwLogo),
      439. B.m_idGuild,
      440. m_szGuild = MAX(A.m_szGuild),
      441. m_szName = MAX(C.m_szName),
      442. m_nWin = MAX(A.m_nWin),
      443. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      444. m_nSurrender = MAX(A.m_nSurrender),
      445. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      446. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      447. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      448. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      449. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      450. CreateTime = MAX(A.CreateTime)
      451. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      452. WHERE A.m_idGuild = B.m_idGuild
      453. AND C.serverindex = E.serverindex
      454. AND C.m_idPlayer = E.m_idPlayer
      455. AND B.m_nMemberLv = 0
      456. AND B.m_idPlayer = C.m_idPlayer
      457. AND A.serverindex = B.serverindex
      458. AND B.serverindex = C.serverindex
      459. AND C.serverindex = @iserverindex
      460. AND D.m_chLoginAuthority = 'F'
      461. AND C.account = D.account
      462. GROUP BY B.m_idGuild
      463. ORDER BY m_nPlayTime DESC,CreateTime
      464. END
      Alles anzeigen
    • TwiLight;108369 schrieb:

      Nehmt doch gleich die Offi RankingDB.

      Quellcode

      1. CREATE TABLE [dbo].[RANKING_TBL] (
      2. [order] [int] NULL ,
      3. [order_all] [int] NULL ,
      4. [Gu] [char] (2) NOT NULL ,
      5. [s_date] [char] (10) NOT NULL ,
      6. [serverindex] [char] (2) NOT NULL ,
      7. [m_dwLogo] [int] NULL ,
      8. [m_idGuild] [char] (6) NOT NULL ,
      9. [m_szGuild] [varchar] (48) NULL ,
      10. [m_szName] [varchar] (32) NULL ,
      11. [m_nWin] [int] NULL ,
      12. [m_nLose] [int] NULL ,
      13. [m_nSurrender] [int] NULL ,
      14. [m_MaximumUnity] [float] NULL ,
      15. [m_AvgLevel] [float] NULL ,
      16. [m_nGuildGold] [bigint] NULL ,
      17. [m_nWinPoint] [int] NULL ,
      18. [m_nPlayTime] [int] NULL ,
      19. [CreateTime] [datetime] NULL
      20. ) ON [PRIMARY]
      21. GO
      22. CREATE PROC RANKING_STR
      23. @iGu CHAR(2) = 'R1',
      24. @iserverindex CHAR(2) = '01'
      25. AS
      26. DECLARE @os_date CHAR(10)
      27. SELECT @os_date = MAX(s_date) FROM RANKING_TBL WHERE Gu = @iGu AND serverindex = @iserverindex
      28. DECLARE @orderby VARCHAR(255)
      29. --R1 : 최강길드
      30. --R2 : 최다승
      31. --R3 : 최다패
      32. --R4 : 최다항복패
      33. --R5 : 최고결속력
      34. --R6 : 최고자금
      35. --R7 : 평균고랩
      36. --R8 : 최대플레이
      37. SELECT @orderby = CASE @iGu WHEN 'R1' THEN ' ORDER BY m_nWinPoint DESC,m_nWin DESC'
      38. WHEN 'R2' THEN ' ORDER BY m_nWin DESC,CreateTime'
      39. WHEN 'R3' THEN ' ORDER BY m_nLose DESC,m_nSurrender DESC'
      40. WHEN 'R4' THEN ' ORDER BY m_nSurrender DESC,m_nLose DESC'
      41. WHEN 'R5' THEN ' ORDER BY m_MaximumUnity DESC,CreateTime'
      42. WHEN 'R6' THEN ' ORDER BY m_nGuildGold DESC,CreateTime'
      43. WHEN 'R7' THEN ' ORDER BY m_AvgLevel DESC,CreateTime'
      44. WHEN 'R8' THEN ' ORDER BY m_nPlayTime DESC,CreateTime' END
      45. EXEC
      46. (
      47. 'SELECT TOP 20 [order],Gu,s_date,serverindex,m_dwLogo,m_idGuild,m_szGuild,m_szName,
      48. m_nWin,m_nLose,m_nSurrender,m_MaximumUnity,m_AvgLevel,
      49. m_nGuildGold,m_nWinPoint,m_nPlayTime,CreateTime
      50. FROM RANKING_TBL
      51. WHERE Gu = ''' + @iGu + '''
      52. AND serverindex = ''' + @iserverindex + '''
      53. AND s_date = ''' + @os_date + '''' + @orderby
      54. )
      55. RETURN
      56. CREATE proc usp_guildbank_log_view
      57. @iGu char(2) = 'S1',
      58. @im_idGuild char(6) = '01',
      59. @iserverindex CHAR(2) = ''
      60. AS
      61. SET NOCOUNT ON
      62. declare @q1 nvarchar(4000)
      63. declare @q2 nvarchar(4000)
      64. IF @iGu = 'S1'
      65. BEGIN
      66. set @q1 = '
      67. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      68. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      69. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''A'' ORDER BY s_date DESC'
      70. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      71. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      72. END
      73. /*
      74. 넣기 A 빼기 D 돈넣기 I 돈빼기 O
      75. */
      76. ELSE
      77. IF @iGu = 'S2'
      78. BEGIN
      79. set @q1 = '
      80. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      81. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      82. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''D'' ORDER BY s_date DESC'
      83. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      84. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      85. END
      86. /*
      87. */
      88. ELSE
      89. IF @iGu = 'S3'
      90. BEGIN
      91. set @q1 = '
      92. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      93. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      94. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''I'' ORDER BY s_date DESC'
      95. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      96. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      97. END
      98. /*
      99. */
      100. ELSE
      101. IF @iGu = 'S4'
      102. BEGIN
      103. set @q1 = '
      104. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      105. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      106. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''O'' ORDER BY s_date DESC'
      107. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      108. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      109. END
      110. /*
      111. */
      112. RETURN
      Alles anzeigen


      Damit die RANKING_TBL auch gefüllt werden kann, könnt ihr die MAKE_RANKING_STR in die CHARACTER_01_DBF einfügen:

      Quellcode

      1. CREATE PROC MAKE_RANKING_STR
      2. @iserverindex CHAR(2) = '01'
      3. AS
      4. set nocount on
      5. DECLARE @currDate char(10),@om_nCount INT,@of_nCount INT
      6. SET @currDate = CONVERT(CHAR(8),GETDATE(),112)
      7. + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(hh,GETDATE())),2)
      8. -- + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(mi,GETDATE())),2)
      9. --R1 : 최강길드
      10. --R2 : 최다승
      11. --R3 : 최다패
      12. --R4 : 최다항복패
      13. --R5 : 최고결속력
      14. --R6 : 최고자금
      15. --R7 : 평균고랩
      16. --R8 : 최대플레이
      17. --SELECT * FROM RANKING.RANKING_DBF.dbo.RANKING_TBL
      18. --DELETE RANKING.RANKING_DBF.dbo.RANKING_TBL
      19. --R1 : 최강길드
      20. IF EXISTS(SELECT * FROM RANKING.RANKING_DBF.dbo.RANKING_TBL WHERE s_date = @currDate and serverindex = @iserverindex)
      21. BEGIN
      22. DELETE RANKING.RANKING_DBF.dbo.RANKING_TBL WHERE s_date = @currDate and serverindex = @iserverindex
      23. END
      24. BEGIN
      25. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      26. (
      27. Gu, s_date,
      28. serverindex,
      29. m_dwLogo,
      30. m_idGuild,
      31. m_szGuild,
      32. m_szName,
      33. m_nWin,
      34. m_nLose,
      35. m_nSurrender,
      36. m_MaximumUnity,
      37. m_AvgLevel,
      38. m_nGuildGold,
      39. m_nWinPoint,
      40. m_nPlayTime,
      41. CreateTime
      42. )
      43. SELECT TOP 20 Gu = 'R1',s_date = @currDate,-- m_Title = '최강길드',
      44. serverindex = MAX(A.serverindex),
      45. m_dwLogo = MAX(A.m_dwLogo),
      46. B.m_idGuild,
      47. m_szGuild = MAX(A.m_szGuild),
      48. m_szName = MAX(C.m_szName),
      49. m_nWin = MAX(A.m_nWin),
      50. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      51. m_nSurrender = MAX(A.m_nSurrender),
      52. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      53. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      54. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      55. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      56. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      57. CreateTime = MAX(A.CreateTime)
      58. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      59. WHERE A.m_idGuild = B.m_idGuild
      60. AND A.serverindex = E.serverindex
      61. AND C.m_idPlayer = E.m_idPlayer
      62. AND B.m_nMemberLv = 0
      63. AND B.m_idPlayer = C.m_idPlayer
      64. AND A.serverindex = B.serverindex
      65. AND B.serverindex = C.serverindex
      66. AND C.serverindex = @iserverindex
      67. AND D.m_chLoginAuthority ='F'
      68. AND C.account = D.account
      69. GROUP BY B.m_idGuild
      70. ORDER BY m_nWinPoint DESC,m_nWin DESC
      71. --R2 : 최다승
      72. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      73. (
      74. Gu, s_date,
      75. serverindex,
      76. m_dwLogo,
      77. m_idGuild,
      78. m_szGuild,
      79. m_szName,
      80. m_nWin,
      81. m_nLose,
      82. m_nSurrender,
      83. m_MaximumUnity,
      84. m_AvgLevel,
      85. m_nGuildGold,
      86. m_nWinPoint,
      87. m_nPlayTime,
      88. CreateTime
      89. )
      90. SELECT TOP 20 Gu = 'R2',s_date = @currDate,--m_Title = '최다승',
      91. serverindex = MAX(A.serverindex),
      92. m_dwLogo = MAX(A.m_dwLogo),
      93. B.m_idGuild,
      94. m_szGuild = MAX(A.m_szGuild),
      95. m_szName = MAX(C.m_szName),
      96. m_nWin = MAX(A.m_nWin),
      97. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      98. m_nSurrender = MAX(A.m_nSurrender),
      99. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      100. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      101. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      102. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      103. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      104. CreateTime = MAX(A.CreateTime)
      105. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      106. WHERE A.m_idGuild = B.m_idGuild
      107. AND A.serverindex = E.serverindex
      108. AND C.m_idPlayer = E.m_idPlayer
      109. AND B.m_nMemberLv = 0
      110. AND B.m_idPlayer = C.m_idPlayer
      111. AND A.serverindex = B.serverindex
      112. AND B.serverindex = C.serverindex
      113. AND C.serverindex = @iserverindex
      114. AND D.m_chLoginAuthority = 'F'
      115. AND C.account = D.account
      116. GROUP BY B.m_idGuild
      117. ORDER BY m_nWin DESC,CreateTime
      118. --R3 : 최다패
      119. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      120. (
      121. Gu, s_date,
      122. serverindex,
      123. m_dwLogo,
      124. m_idGuild,
      125. m_szGuild,
      126. m_szName,
      127. m_nWin,
      128. m_nLose,
      129. m_nSurrender,
      130. m_MaximumUnity,
      131. m_AvgLevel,
      132. m_nGuildGold,
      133. m_nWinPoint,
      134. m_nPlayTime,
      135. CreateTime
      136. )
      137. SELECT TOP 20 Gu = 'R3',s_date = @currDate,-- m_Title = '최다패',
      138. serverindex = MAX(A.serverindex),
      139. m_dwLogo = MAX(A.m_dwLogo),
      140. B.m_idGuild,
      141. m_szGuild = MAX(A.m_szGuild),
      142. m_szName = MAX(C.m_szName),
      143. m_nWin = MAX(A.m_nWin),
      144. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      145. m_nSurrender = MAX(A.m_nSurrender),
      146. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      147. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      148. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      149. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      150. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      151. CreateTime = MAX(A.CreateTime)
      152. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      153. WHERE A.m_idGuild = B.m_idGuild
      154. AND A.serverindex = E.serverindex
      155. AND C.m_idPlayer = E.m_idPlayer
      156. AND B.m_nMemberLv = 0
      157. AND B.m_idPlayer = C.m_idPlayer
      158. AND A.serverindex = B.serverindex
      159. AND B.serverindex = C.serverindex
      160. AND C.serverindex = @iserverindex
      161. AND D.m_chLoginAuthority = 'F'
      162. AND C.account = D.account
      163. GROUP BY B.m_idGuild
      164. ORDER BY m_nLose DESC,m_nSurrender DESC
      165. --R4 : 최다항복패
      166. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      167. (
      168. Gu, s_date,
      169. serverindex,
      170. m_dwLogo,
      171. m_idGuild,
      172. m_szGuild,
      173. m_szName,
      174. m_nWin,
      175. m_nLose,
      176. m_nSurrender,
      177. m_MaximumUnity,
      178. m_AvgLevel,
      179. m_nGuildGold,
      180. m_nWinPoint,
      181. m_nPlayTime,
      182. CreateTime
      183. )
      184. SELECT TOP 20 Gu = 'R4',s_date = @currDate,-- m_Title = '최다항복패',
      185. serverindex = MAX(A.serverindex),
      186. m_dwLogo = MAX(A.m_dwLogo),
      187. B.m_idGuild,
      188. m_szGuild = MAX(A.m_szGuild),
      189. m_szName = MAX(C.m_szName),
      190. m_nWin = MAX(A.m_nWin),
      191. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      192. m_nSurrender = MAX(A.m_nSurrender),
      193. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      194. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      195. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      196. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      197. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      198. CreateTime = MAX(A.CreateTime)
      199. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      200. WHERE A.m_idGuild = B.m_idGuild
      201. AND A.serverindex = E.serverindex
      202. AND C.m_idPlayer = E.m_idPlayer
      203. AND B.m_nMemberLv = 0
      204. AND B.m_idPlayer = C.m_idPlayer
      205. AND A.serverindex = B.serverindex
      206. AND B.serverindex = C.serverindex
      207. AND C.serverindex = @iserverindex
      208. AND D.m_chLoginAuthority = 'F'
      209. AND C.account = D.account
      210. GROUP BY B.m_idGuild
      211. ORDER BY m_nSurrender DESC,m_nLose DESC
      212. --R5 : 최고결속력
      213. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      214. (
      215. Gu, s_date,
      216. serverindex,
      217. m_dwLogo,
      218. m_idGuild,
      219. m_szGuild,
      220. m_szName,
      221. m_nWin,
      222. m_nLose,
      223. m_nSurrender,
      224. m_MaximumUnity,
      225. m_AvgLevel,
      226. m_nGuildGold,
      227. m_nWinPoint,
      228. m_nPlayTime,
      229. CreateTime
      230. )
      231. SELECT TOP 20 Gu = 'R5',s_date = @currDate,-- m_Title = '최고결속력',
      232. serverindex = MAX(A.serverindex),
      233. m_dwLogo = MAX(A.m_dwLogo),
      234. B.m_idGuild,
      235. m_szGuild = MAX(A.m_szGuild),
      236. m_szName = MAX(C.m_szName),
      237. m_nWin = MAX(A.m_nWin),
      238. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      239. m_nSurrender = MAX(A.m_nSurrender),
      240. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      241. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      242. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      243. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      244. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      245. CreateTime = MAX(A.CreateTime)
      246. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      247. WHERE A.m_idGuild = B.m_idGuild
      248. AND A.serverindex = E.serverindex
      249. AND C.m_idPlayer = E.m_idPlayer
      250. AND B.m_nMemberLv = 0
      251. AND B.m_idPlayer = C.m_idPlayer
      252. AND A.serverindex = B.serverindex
      253. AND B.serverindex = C.serverindex
      254. AND C.serverindex = @iserverindex
      255. AND D.m_chLoginAuthority = 'F'
      256. AND C.account = D.account
      257. GROUP BY B.m_idGuild
      258. ORDER BY m_MaximumUnity DESC,CreateTime
      259. --R6 : 최고자금
      260. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      261. (
      262. Gu, s_date,
      263. serverindex,
      264. m_dwLogo,
      265. m_idGuild,
      266. m_szGuild,
      267. m_szName,
      268. m_nWin,
      269. m_nLose,
      270. m_nSurrender,
      271. m_MaximumUnity,
      272. m_AvgLevel,
      273. m_nGuildGold,
      274. m_nWinPoint,
      275. m_nPlayTime,
      276. CreateTime
      277. )
      278. select top 20 *
      279. from (
      280. SELECT TOP 20 Gu = 'R6', s_date = @currDate,-- m_Title = '최고자금',
      281. serverindex = MAX(A.serverindex),
      282. m_dwLogo = MAX(A.m_dwLogo),
      283. B.m_idGuild,
      284. m_szGuild = MAX(A.m_szGuild),
      285. m_szName = MAX(C.m_szName),
      286. m_nWin = MAX(A.m_nWin),
      287. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      288. m_nSurrender = MAX(A.m_nSurrender),
      289. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      290. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      291. m_nGuildGold = ISNULL(MAX(dbo.fn_GuildGold(A.m_nGuildGold)),0),
      292. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      293. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      294. CreateTime = MAX(A.CreateTime)
      295. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      296. WHERE A.m_idGuild = B.m_idGuild
      297. AND A.serverindex = E.serverindex
      298. AND C.m_idPlayer = E.m_idPlayer
      299. AND B.m_nMemberLv = 0
      300. AND B.m_idPlayer = C.m_idPlayer
      301. AND A.serverindex = B.serverindex
      302. AND B.serverindex = C.serverindex
      303. AND C.serverindex = @iserverindex
      304. AND D.m_chLoginAuthority = 'F'
      305. AND C.account = D.account
      306. and A.m_nGuildGold > 0
      307. GROUP BY B.m_idGuild
      308. ORDER BY m_nGuildGold DESC,CreateTime
      309. /*union all
      310. SELECT TOP 20 Gu = 'R6', s_date = @currDate,-- m_Title = '최고자금',
      311. serverindex = MAX(A.serverindex),
      312. m_dwLogo = MAX(A.m_dwLogo),
      313. B.m_idGuild,
      314. m_szGuild = MAX(A.m_szGuild),
      315. m_szName = MAX(C.m_szName),
      316. m_nWin = MAX(A.m_nWin),
      317. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      318. m_nSurrender = MAX(A.m_nSurrender),
      319. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      320. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      321. -- m_nGuildGold = ISNULL(MAX(A.m_nGuildGold + 4294967295),0),
      322. m_nGuildGold = isnull(max(dbo.fn_GuildGold(A.m_nGuildGold)), 0),
      323. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      324. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      325. CreateTime = MAX(A.CreateTime)
      326. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      327. WHERE A.m_idGuild = B.m_idGuild
      328. AND A.serverindex = E.serverindex
      329. AND C.m_idPlayer = E.m_idPlayer
      330. AND B.m_nMemberLv = 0
      331. AND B.m_idPlayer = C.m_idPlayer
      332. AND A.serverindex = B.serverindex
      333. AND B.serverindex = C.serverindex
      334. AND C.serverindex = @iserverindex
      335. AND D.m_chLoginAuthority = 'F'
      336. AND C.account = D.account
      337. and A.m_nGuildGold < 0
      338. GROUP BY B.m_idGuild
      339. ORDER BY A.m_nGuildGold DESC,CreateTime*/)x
      340. order by m_nGuildGold desc, CreateTime
      341. /*SELECT TOP 20 Gu = 'R6',s_date = @currDate,-- m_Title = '최고자금',
      342. serverindex = MAX(A.serverindex),
      343. m_dwLogo = MAX(A.m_dwLogo),
      344. B.m_idGuild,
      345. m_szGuild = MAX(A.m_szGuild),
      346. m_szName = MAX(C.m_szName),
      347. m_nWin = MAX(A.m_nWin),
      348. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      349. m_nSurrender = MAX(A.m_nSurrender),
      350. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      351. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      352. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      353. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      354. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      355. CreateTime = MAX(A.CreateTime)
      356. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      357. WHERE A.m_idGuild = B.m_idGuild
      358. AND A.serverindex = E.serverindex
      359. AND C.m_idPlayer = E.m_idPlayer
      360. AND B.m_nMemberLv = 0
      361. AND B.m_idPlayer = C.m_idPlayer
      362. AND A.serverindex = B.serverindex
      363. AND B.serverindex = C.serverindex
      364. AND C.serverindex = @iserverindex
      365. AND D.m_chLoginAuthority = 'F'
      366. AND C.account = D.account
      367. GROUP BY B.m_idGuild
      368. ORDER BY m_nGuildGold DESC,CreateTime
      369. */
      370. --R7 : 평균고랩
      371. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      372. (
      373. Gu, s_date,
      374. serverindex,
      375. m_dwLogo,
      376. m_idGuild,
      377. m_szGuild,
      378. m_szName,
      379. m_nWin,
      380. m_nLose,
      381. m_nSurrender,
      382. m_MaximumUnity,
      383. m_AvgLevel,
      384. m_nGuildGold,
      385. m_nWinPoint,
      386. m_nPlayTime,
      387. CreateTime
      388. )
      389. SELECT TOP 20 Gu = 'R7',s_date = @currDate,-- m_Title = '평균고랩',
      390. serverindex = MAX(A.serverindex),
      391. m_dwLogo = MAX(A.m_dwLogo),
      392. B.m_idGuild,
      393. m_szGuild = MAX(A.m_szGuild),
      394. m_szName = MAX(C.m_szName),
      395. m_nWin = MAX(A.m_nWin),
      396. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      397. m_nSurrender = MAX(A.m_nSurrender),
      398. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      399. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      400. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      401. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      402. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      403. CreateTime = MAX(A.CreateTime)
      404. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      405. WHERE A.m_idGuild = B.m_idGuild
      406. AND A.serverindex = E.serverindex
      407. AND C.m_idPlayer = E.m_idPlayer
      408. AND B.m_nMemberLv = 0
      409. AND B.m_idPlayer = C.m_idPlayer
      410. AND A.serverindex = B.serverindex
      411. AND B.serverindex = C.serverindex
      412. AND C.serverindex = @iserverindex
      413. AND D.m_chLoginAuthority = 'F'
      414. AND C.account = D.account
      415. GROUP BY B.m_idGuild
      416. ORDER BY m_AvgLevel DESC,CreateTime
      417. --R8 : 최대플레이
      418. INSERT RANKING.RANKING_DBF.dbo.RANKING_TBL
      419. (
      420. Gu, s_date,
      421. serverindex,
      422. m_dwLogo,
      423. m_idGuild,
      424. m_szGuild,
      425. m_szName,
      426. m_nWin,
      427. m_nLose,
      428. m_nSurrender,
      429. m_MaximumUnity,
      430. m_AvgLevel,
      431. m_nGuildGold,
      432. m_nWinPoint,
      433. m_nPlayTime,
      434. CreateTime
      435. )
      436. SELECT TOP 20 Gu = 'R8',s_date = @currDate,-- m_Title = '평균고랩',
      437. serverindex = MAX(A.serverindex),
      438. m_dwLogo = MAX(A.m_dwLogo),
      439. B.m_idGuild,
      440. m_szGuild = MAX(A.m_szGuild),
      441. m_szName = MAX(C.m_szName),
      442. m_nWin = MAX(A.m_nWin),
      443. m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
      444. m_nSurrender = MAX(A.m_nSurrender),
      445. m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
      446. m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
      447. m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
      448. m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
      449. m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
      450. CreateTime = MAX(A.CreateTime)
      451. FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
      452. WHERE A.m_idGuild = B.m_idGuild
      453. AND C.serverindex = E.serverindex
      454. AND C.m_idPlayer = E.m_idPlayer
      455. AND B.m_nMemberLv = 0
      456. AND B.m_idPlayer = C.m_idPlayer
      457. AND A.serverindex = B.serverindex
      458. AND B.serverindex = C.serverindex
      459. AND C.serverindex = @iserverindex
      460. AND D.m_chLoginAuthority = 'F'
      461. AND C.account = D.account
      462. GROUP BY B.m_idGuild
      463. ORDER BY m_nPlayTime DESC,CreateTime
      464. END
      Alles anzeigen


      Bekomme hier einen Error:
      Meldung 156, Ebene 15, Status 1, Prozedur RANKING_STR, Zeile 41
      Falsche Syntax in der Nähe des 'proc'-Schlüsselwortes.
      Meldung 137, Ebene 15, Status 2, Prozedur RANKING_STR, Zeile 58
      Die "@im_idGuild"-Skalarvariable muss deklariert werden.
      Meldung 137, Ebene 15, Status 2, Prozedur RANKING_STR, Zeile 71
      Die "@im_idGuild"-Skalarvariable muss deklariert werden.
      Meldung 137, Ebene 15, Status 2, Prozedur RANKING_STR, Zeile 84
      Die "@im_idGuild"-Skalarvariable muss deklariert werden.
      Meldung 137, Ebene 15, Status 2, Prozedur RANKING_STR, Zeile 97
      Die "@im_idGuild"-Skalarvariable muss deklariert werden.


      @Threadersteller:
      Wenn man es bei File-Upload lädt, ist das Archiv beschädigt und
      bei Megaupload ist die Datei nicht verfügbar. ;)

      MfG,
      Valron
    • Mhhh ok dann bastel ich halt heute doch die DB und werde sie hochladen xD
      Danke für den Tipp^^ Ka was mit Megaupload los ist ?!

      Den Fehler habe ich auch^^
      Meldung 156, Ebene 15, Status 1, Prozedur RANKING_STR, Zeile 41
      Falsche Syntax in der Nähe des 'proc'-Schlüsselwortes.
      Aber der Rest ERROR LOGS LESEN FTW ;)
    • Valron;110059 schrieb:

      Bekomme hier einen Error:


      @Threadersteller:
      Wenn man es bei File-Upload lädt, ist das Archiv beschädigt und
      bei Megaupload ist die Datei nicht verfügbar. ;)

      MfG,
      Valron


      Dann führe die beiden Skripts doch einzeln aus? xD

      Oder benutze den [COLOR="Red"]QUOTED IDENTIFIER[/COLOR].

      Quellcode

      1. CREATE TABLE [dbo].[RANKING_TBL] (
      2. [order] [int] NULL ,
      3. [order_all] [int] NULL ,
      4. [Gu] [char] (2) NOT NULL ,
      5. [s_date] [char] (10) NOT NULL ,
      6. [serverindex] [char] (2) NOT NULL ,
      7. [m_dwLogo] [int] NULL ,
      8. [m_idGuild] [char] (6) NOT NULL ,
      9. [m_szGuild] [varchar] (48) NULL ,
      10. [m_szName] [varchar] (32) NULL ,
      11. [m_nWin] [int] NULL ,
      12. [m_nLose] [int] NULL ,
      13. [m_nSurrender] [int] NULL ,
      14. [m_MaximumUnity] [float] NULL ,
      15. [m_AvgLevel] [float] NULL ,
      16. [m_nGuildGold] [bigint] NULL ,
      17. [m_nWinPoint] [int] NULL ,
      18. [m_nPlayTime] [int] NULL ,
      19. [CreateTime] [datetime] NULL
      20. ) ON [PRIMARY]
      21. GO
      22. [COLOR="Red"]SET QUOTED_IDENTIFIER ON
      23. GO[/COLOR]
      24. SET ANSI_NULLS ON
      25. GO
      26. CREATE PROC RANKING_STR
      27. @iGu CHAR(2) = 'R1',
      28. @iserverindex CHAR(2) = '01'
      29. AS
      30. DECLARE @os_date CHAR(10)
      31. SELECT @os_date = MAX(s_date) FROM RANKING_TBL WHERE Gu = @iGu AND serverindex = @iserverindex
      32. DECLARE @orderby VARCHAR(255)
      33. --R1 : 최강길드
      34. --R2 : 최다승
      35. --R3 : 최다패
      36. --R4 : 최다항복패
      37. --R5 : 최고결속력
      38. --R6 : 최고자금
      39. --R7 : 평균고랩
      40. --R8 : 최대플레이
      41. SELECT @orderby = CASE @iGu WHEN 'R1' THEN ' ORDER BY m_nWinPoint DESC,m_nWin DESC'
      42. WHEN 'R2' THEN ' ORDER BY m_nWin DESC,CreateTime'
      43. WHEN 'R3' THEN ' ORDER BY m_nLose DESC,m_nSurrender DESC'
      44. WHEN 'R4' THEN ' ORDER BY m_nSurrender DESC,m_nLose DESC'
      45. WHEN 'R5' THEN ' ORDER BY m_MaximumUnity DESC,CreateTime'
      46. WHEN 'R6' THEN ' ORDER BY m_nGuildGold DESC,CreateTime'
      47. WHEN 'R7' THEN ' ORDER BY m_AvgLevel DESC,CreateTime'
      48. WHEN 'R8' THEN ' ORDER BY m_nPlayTime DESC,CreateTime' END
      49. EXEC
      50. (
      51. 'SELECT TOP 20 [order],Gu,s_date,serverindex,m_dwLogo,m_idGuild,m_szGuild,m_szName,
      52. m_nWin,m_nLose,m_nSurrender,m_MaximumUnity,m_AvgLevel,
      53. m_nGuildGold,m_nWinPoint,m_nPlayTime,CreateTime
      54. FROM RANKING_TBL
      55. WHERE Gu = ''' + @iGu + '''
      56. AND serverindex = ''' + @iserverindex + '''
      57. AND s_date = ''' + @os_date + '''' + @orderby
      58. )
      59. RETURN
      60. GO
      61. [COLOR="Red"]SET QUOTED_IDENTIFIER OFF
      62. GO[/COLOR]
      63. SET ANSI_NULLS ON
      64. GO
      65. [COLOR="Red"]SET QUOTED_IDENTIFIER ON
      66. GO[/COLOR]
      67. SET ANSI_NULLS ON
      68. GO
      69. CREATE proc usp_guildbank_log_view
      70. @iGu char(2) = 'S1',
      71. @im_idGuild char(6) = '01',
      72. @iserverindex CHAR(2) = ''
      73. AS
      74. SET NOCOUNT ON
      75. declare @q1 nvarchar(4000)
      76. declare @q2 nvarchar(4000)
      77. IF @iGu = 'S1'
      78. BEGIN
      79. set @q1 = '
      80. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      81. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      82. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''A'' ORDER BY s_date DESC'
      83. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      84. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      85. END
      86. /*
      87. 넣기 A 빼기 D 돈넣기 I 돈빼기 O
      88. */
      89. ELSE
      90. IF @iGu = 'S2'
      91. BEGIN
      92. set @q1 = '
      93. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      94. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      95. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''D'' ORDER BY s_date DESC'
      96. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      97. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      98. END
      99. /*
      100. */
      101. ELSE
      102. IF @iGu = 'S3'
      103. BEGIN
      104. set @q1 = '
      105. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      106. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      107. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''I'' ORDER BY s_date DESC'
      108. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      109. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      110. END
      111. /*
      112. */
      113. ELSE
      114. IF @iGu = 'S4'
      115. BEGIN
      116. set @q1 = '
      117. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      118. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      119. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''O'' ORDER BY s_date DESC'
      120. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      121. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      122. END
      123. /*
      124. */
      125. RETURN
      126. GO
      127. [COLOR="Red"]SET QUOTED_IDENTIFIER OFF
      128. GO[/COLOR]
      129. SET ANSI_NULLS ON
      130. GO
      Alles anzeigen
    • Chaosduckman;110088 schrieb:

      SET QUOTED_IDENTIFIER OFF
      GO
      SET ANSI_NULLS ON
      GO

      SET QUOTED_IDENTIFIER ON
      GO
      SET ANSI_NULLS ON
      GO

      Du machst SET QUOTED_IDENTIFIER aus und gleich wieder an?! Ich weiß nicht ob das so sein muss da ich kein MSSQL kann :/


      Einmal für die RANKING_STR (Da kommt das OFF), dann sofort wieder ON (wegen der usp_guildbanklogview)

      Du musst die den Quoted Identifier so vorstellen:
      Er trennt die einzelnen Queries, man kann es mit zitieren vergleichen (Englisch to quote = zitieren). Bei der RANKING_STR zum Beispiel steht am Ende "RETURN".
      Bei SQL kommt bei RETURN normalerweise etwas danach, hier aber nicht. Sollten nach der Query für die RANKING_STR noch weitere folgen, müsste hier der Quoted Identifier genutzt werden (Hab ich erst jetzt bemerkt), damit die einzelnen Codes getrennt werden können.
    • TwiLight;110079 schrieb:

      Dann führe die beiden Skripts doch einzeln aus? xD

      Oder benutze den [COLOR="Red"]QUOTED IDENTIFIER[/COLOR].

      Quellcode

      1. CREATE TABLE [dbo].[RANKING_TBL] (
      2. [order] [int] NULL ,
      3. [order_all] [int] NULL ,
      4. [Gu] [char] (2) NOT NULL ,
      5. [s_date] [char] (10) NOT NULL ,
      6. [serverindex] [char] (2) NOT NULL ,
      7. [m_dwLogo] [int] NULL ,
      8. [m_idGuild] [char] (6) NOT NULL ,
      9. [m_szGuild] [varchar] (48) NULL ,
      10. [m_szName] [varchar] (32) NULL ,
      11. [m_nWin] [int] NULL ,
      12. [m_nLose] [int] NULL ,
      13. [m_nSurrender] [int] NULL ,
      14. [m_MaximumUnity] [float] NULL ,
      15. [m_AvgLevel] [float] NULL ,
      16. [m_nGuildGold] [bigint] NULL ,
      17. [m_nWinPoint] [int] NULL ,
      18. [m_nPlayTime] [int] NULL ,
      19. [CreateTime] [datetime] NULL
      20. ) ON [PRIMARY]
      21. GO
      22. [COLOR="Red"]SET QUOTED_IDENTIFIER ON
      23. GO[/COLOR]
      24. SET ANSI_NULLS ON
      25. GO
      26. CREATE PROC RANKING_STR
      27. @iGu CHAR(2) = 'R1',
      28. @iserverindex CHAR(2) = '01'
      29. AS
      30. DECLARE @os_date CHAR(10)
      31. SELECT @os_date = MAX(s_date) FROM RANKING_TBL WHERE Gu = @iGu AND serverindex = @iserverindex
      32. DECLARE @orderby VARCHAR(255)
      33. --R1 : 최강길드
      34. --R2 : 최다승
      35. --R3 : 최다패
      36. --R4 : 최다항복패
      37. --R5 : 최고결속력
      38. --R6 : 최고자금
      39. --R7 : 평균고랩
      40. --R8 : 최대플레이
      41. SELECT @orderby = CASE @iGu WHEN 'R1' THEN ' ORDER BY m_nWinPoint DESC,m_nWin DESC'
      42. WHEN 'R2' THEN ' ORDER BY m_nWin DESC,CreateTime'
      43. WHEN 'R3' THEN ' ORDER BY m_nLose DESC,m_nSurrender DESC'
      44. WHEN 'R4' THEN ' ORDER BY m_nSurrender DESC,m_nLose DESC'
      45. WHEN 'R5' THEN ' ORDER BY m_MaximumUnity DESC,CreateTime'
      46. WHEN 'R6' THEN ' ORDER BY m_nGuildGold DESC,CreateTime'
      47. WHEN 'R7' THEN ' ORDER BY m_AvgLevel DESC,CreateTime'
      48. WHEN 'R8' THEN ' ORDER BY m_nPlayTime DESC,CreateTime' END
      49. EXEC
      50. (
      51. 'SELECT TOP 20 [order],Gu,s_date,serverindex,m_dwLogo,m_idGuild,m_szGuild,m_szName,
      52. m_nWin,m_nLose,m_nSurrender,m_MaximumUnity,m_AvgLevel,
      53. m_nGuildGold,m_nWinPoint,m_nPlayTime,CreateTime
      54. FROM RANKING_TBL
      55. WHERE Gu = ''' + @iGu + '''
      56. AND serverindex = ''' + @iserverindex + '''
      57. AND s_date = ''' + @os_date + '''' + @orderby
      58. )
      59. RETURN
      60. GO
      61. [COLOR="Red"]SET QUOTED_IDENTIFIER OFF
      62. GO[/COLOR]
      63. SET ANSI_NULLS ON
      64. GO
      65. [COLOR="Red"]SET QUOTED_IDENTIFIER ON
      66. GO[/COLOR]
      67. SET ANSI_NULLS ON
      68. GO
      69. CREATE proc usp_guildbank_log_view
      70. @iGu char(2) = 'S1',
      71. @im_idGuild char(6) = '01',
      72. @iserverindex CHAR(2) = ''
      73. AS
      74. SET NOCOUNT ON
      75. declare @q1 nvarchar(4000)
      76. declare @q2 nvarchar(4000)
      77. IF @iGu = 'S1'
      78. BEGIN
      79. set @q1 = '
      80. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      81. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      82. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''A'' ORDER BY s_date DESC'
      83. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      84. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      85. END
      86. /*
      87. 넣기 A 빼기 D 돈넣기 I 돈빼기 O
      88. */
      89. ELSE
      90. IF @iGu = 'S2'
      91. BEGIN
      92. set @q1 = '
      93. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      94. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      95. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''D'' ORDER BY s_date DESC'
      96. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      97. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      98. END
      99. /*
      100. */
      101. ELSE
      102. IF @iGu = 'S3'
      103. BEGIN
      104. set @q1 = '
      105. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      106. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      107. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''I'' ORDER BY s_date DESC'
      108. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      109. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      110. END
      111. /*
      112. */
      113. ELSE
      114. IF @iGu = 'S4'
      115. BEGIN
      116. set @q1 = '
      117. SELECT TOP 100 m_idPlayer,s_date,m_Item,m_nAbilityOption,Item_count
      118. FROM LOGGING_[&server&]_DBF.dbo.LOG_GUILD_BANK_TBL (nolock)
      119. WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex AND State=''O'' ORDER BY s_date DESC'
      120. set @q2 = replace(@q1, '[&server&]', @iserverindex)
      121. exec sp_executesql @q2, N'@im_idGuild char(6), @iserverindex char(2)', @im_idGuild, @iserverindex
      122. END
      123. /*
      124. */
      125. RETURN
      126. GO
      127. [COLOR="Red"]SET QUOTED_IDENTIFIER OFF
      128. GO[/COLOR]
      129. SET ANSI_NULLS ON
      130. GO
      Alles anzeigen


      Ok, danke. :)
      Hat geklappt. ^.^