Advertisement
SquirrelInBox

lab3

Nov 24th, 2015
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.17 KB | None | 0 0
  1. USE master
  2. GO
  3.  
  4. IF  EXISTS (
  5.         SELECT name
  6.                 FROM sys.DATABASES
  7.                 WHERE name = N'ElenaBeklenishcheva'
  8. )
  9. ALTER DATABASE ElenaBeklenishcheva SET single_user WITH ROLLBACK immediate
  10. GO
  11.  
  12. IF  EXISTS (
  13.         SELECT name
  14.                 FROM sys.DATABASES
  15.                 WHERE name = N'ElenaBeklenishcheva'
  16. )
  17. DROP DATABASE [ElenaBeklenishcheva]
  18. GO
  19.  
  20. CREATE DATABASE [ElenaBeklenishcheva]
  21. GO
  22.  
  23. USE [ElenaBeklenishcheva]
  24. GO
  25.  
  26. IF EXISTS(
  27.   SELECT *
  28.     FROM sys.schemas
  29.    WHERE name = N'Scheme'
  30. )
  31.  DROP SCHEMA Scheme
  32. GO
  33.  
  34. CREATE SCHEMA Scheme
  35. GO
  36.  
  37.  
  38. IF OBJECT_ID('commands', 'U') IS NOT NULL
  39.     DROP TABLE commands
  40. GO
  41.  
  42. CREATE TABLE commands (
  43.     command_id INT PRIMARY KEY NOT NULL,
  44.     command_name VARCHAR(50) UNIQUE NOT NULL
  45. )
  46. GO
  47.  
  48. INSERT INTO commands VALUES
  49. (1, 'Урал'),
  50. (2, 'Спартак'),
  51. (3, 'Рубин')
  52. GO
  53.  
  54.  
  55. IF OBJECT_ID('conists', 'U') IS NOT NULL
  56.     DROP TABLE consist
  57. GO
  58.  
  59. CREATE TABLE consist (
  60.     command_id INT NOT NULL,
  61.     player_id INT PRIMARY KEY NOT NULL,
  62.     player_surname VARCHAR(50) NOT NULL,
  63.     player_name VARCHAR(50) NOT NULL
  64.  
  65.     FOREIGN KEY (command_id) REFERENCES commands(command_id)
  66. )
  67. GO
  68.  
  69. INSERT INTO consist VALUES
  70. (1, 1, 'Арапов', 'Дмитрий'),
  71. (1, 2, 'Заболотный', 'Николай'),
  72. (1, 3, 'Жевнов', 'Юрий'),
  73. (1, 4, 'Белозеров', 'Александр'),
  74. (1, 5, 'Фомин', 'Денис'),
  75.  
  76. (2, 6, 'Ребров', 'Артем'),
  77. (2, 7, 'Гранат', 'Владимир'),
  78. (2, 8, 'Кутепов', 'Илья'),
  79. (2, 9, 'Глушаков', 'Денис'),
  80.  
  81. (3, 10, 'Кузьмин', 'Олег'),
  82. (3, 11, 'Устинов', 'Виталий'),
  83. (3, 12, 'Сорокин', 'Егор'),
  84. (3, 13, 'Жестоков', 'Максим')
  85. GO
  86.  
  87.  
  88. IF OBJECT_ID('games_info', 'U') IS NOT NULL
  89.     DROP TABLE games_info
  90. GO
  91.  
  92. CREATE TABLE games_info (
  93.     id_game INT PRIMARY KEY NOT NULL,
  94.     game_date DATE NOT NULL,
  95.     id_command_owner INT NOT NULL,
  96.     id_command_guest INT NOT NULL,
  97.     id_kipper_own INT NOT NULL,
  98.     id_kipper_g INT NOT NULL,
  99.     score_command_own INT NOT NULL,
  100.     score_command_guest INT NOT NULL
  101.  
  102.     FOREIGN KEY (id_kipper_own) REFERENCES consist(player_id),
  103.     FOREIGN KEY (id_kipper_g) REFERENCES consist(player_id)
  104. )
  105. GO
  106.  
  107. INSERT INTO games_info VALUES
  108. (1, '20151125', 1, 2, 1, 6, 1, 1),
  109. (2, '20151124', 2, 3, 7, 10, 2, 0),
  110. (3, '20151123', 3, 1, 11, 2, 0, 3),
  111. (4, '20160322', 2, 1, 7, 1, 3, 2),
  112. (5, '20160321', 3, 2, 11, 6, 1, 1),
  113. (6, '20160320', 1, 3, 1, 10, 1, 0)
  114. GO
  115.  
  116.  
  117.  
  118. IF OBJECT_ID('goals', 'U') IS NOT NULL
  119.     DROP TABLE goals
  120. GO
  121.  
  122. CREATE TABLE goals(
  123.     id_game INT NOT NULL,
  124.     id_player INT NOT NULL,
  125.     id_goal INT PRIMARY KEY NOT NULL
  126.  
  127.     FOREIGN KEY (id_player) REFERENCES consist(player_id),
  128.     FOREIGN KEY (id_game) REFERENCES games_info(id_game)
  129. )
  130. GO
  131.  
  132. INSERT INTO goals VALUES
  133. (1, 2, 1),
  134. (1, 7, 2),
  135.  
  136. (2, 8, 3),
  137. (2, 8, 4),
  138.  
  139. (3, 2, 5),
  140. (3, 3, 6),
  141. (3, 4, 7),
  142.  
  143. (4, 6, 8),
  144. (4, 8, 9),
  145. (4, 9, 10),
  146. (4, 3, 11),
  147. (4, 4, 12),
  148.  
  149. (5, 12, 13),
  150. (5, 8, 14),
  151.  
  152. (6, 3, 15)
  153. GO
  154.  
  155. CREATE FUNCTION raiting_table()
  156. RETURNS @ret_raiting_table TABLE (
  157.     POSITION INT PRIMARY KEY NOT NULL,
  158.     Team VARCHAR(50) UNIQUE NOT NULL,
  159.     Score INT NOT NULL,
  160.     Scored INT NOT NULL,
  161.     Missing INT NOT NULL
  162. )
  163. AS
  164. BEGIN
  165.     --заполнить таблицу
  166.     DECLARE @temp_table TABLE(tteam VARCHAR(50),
  167.                               tscore INT,
  168.                               tscored INT,
  169.                               tmissing INT)
  170.  
  171.     DECLARE @temp_str VARCHAR(2000);
  172.  
  173.     DECLARE @teams_count INT;
  174.     SET @teams_count = (SELECT COUNT(commands.command_id)
  175.                         FROM commands)
  176.     DECLARE @counter INT = 0;
  177.     WHILE(@counter < @teams_count)
  178.         SET @temp_str = (SELECT commands.command_name, games_info.score_command_own, games_info.score_command_own, games_info.score_command_guest
  179.                             FROM commands, games_info
  180.                             WHERE commands.command_id = games_info.id_command_owner AND commands.command_id = @counter)
  181.         print(@temp_str);
  182.         SET @counter = @counter + 1;
  183.     END;
  184.  
  185.     INSERT @ret_raiting_table
  186.     SELECT games_info.id_game, commands.command_name, games_info.score_command_guest, games_info.score_command_guest,games_info.score_command_guest
  187.     FROM games_info, commands
  188.     WHERE games_info.id_command_guest =commands.command_id
  189.  
  190.     RETURN;
  191. END
  192. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement