ulivegenov

20.*Massive Shopping

Oct 11th, 2019
412
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. /* 20.*Massive Shopping */
  2.  
  3. DECLARE @userName NVARCHAR(max) = 'Stamat'
  4. DECLARE @gameName NVARCHAR(max) = 'Safflower'
  5. DECLARE @userID INT = (
  6. SELECT Id
  7. FROM Users
  8. WHERE Username = @userName
  9. )
  10. DECLARE @gameID INT = (
  11. SELECT Id
  12. FROM Games
  13. WHERE Name = @gameName
  14. )
  15. DECLARE @userMoney MONEY = (
  16. SELECT Cash
  17. FROM UsersGames
  18. WHERE UserId = @userID AND GameId = @gameID
  19. )
  20. DECLARE @itemsTotalPrice MONEY
  21. DECLARE @userGameID int = (
  22. SELECT Id
  23. FROM UsersGames
  24. WHERE UserId = @userID AND GameId = @gameID
  25. )
  26.  
  27. BEGIN TRANSACTION
  28. SET @itemsTotalPrice = (SELECT SUM(Price)
  29. FROM Items
  30. WHERE MinLevel BETWEEN 11 AND 12)
  31.  
  32. IF(@userMoney - @itemsTotalPrice >= 0)
  33. BEGIN
  34. INSERT INTO UserGameItems
  35. SELECT i.Id, @userGameID FROM Items AS i
  36. WHERE i.Id IN (
  37. SELECT Id
  38. FROM Items
  39. WHERE MinLevel BETWEEN 11 AND 12
  40. )
  41.  
  42. UPDATE UsersGames
  43. SET Cash -= @itemsTotalPrice
  44. WHERE GameId = @gameID AND UserId = @userID
  45. COMMIT
  46. END
  47. ELSE
  48. BEGIN
  49. ROLLBACK
  50. END
  51.  
  52. SET @userMoney = (
  53. SELECT Cash
  54. FROM UsersGames
  55. WHERE UserId = @userID AND GameId = @gameID
  56. )
  57. BEGIN TRANSACTION
  58. SET @itemsTotalPrice = (SELECT SUM(Price) FROM Items WHERE MinLevel BETWEEN 19 AND 21)
  59.  
  60. IF(@userMoney - @itemsTotalPrice >= 0)
  61. BEGIN
  62. INSERT INTO UserGameItems
  63. SELECT i.Id, @userGameID FROM Items AS i
  64. WHERE i.Id IN (
  65. SELECT Id
  66. FROM Items
  67. WHERE MinLevel BETWEEN 19 AND 21
  68. )
  69.  
  70. UPDATE UsersGames
  71. SET Cash -= @itemsTotalPrice
  72. WHERE GameId = @gameID AND UserId = @userID
  73. COMMIT
  74. END
  75. ELSE
  76. BEGIN
  77. ROLLBACK
  78. END
  79.  
  80. SELECT Name AS [Item Name]
  81. FROM Items
  82. WHERE Id IN (
  83. SELECT ItemId
  84. FROM UserGameItems
  85. WHERE UserGameId = @userGameID
  86. )
  87. ORDER BY [Item Name]
Advertisement
Add Comment
Please, Sign In to add comment