Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.82 KB | None | 0 0
  1. USE PETRYASHOV;
  2. GO
  3.  
  4. DROP TABLE RegInfo;
  5. DROP TABLE Car;
  6. DROP TABLE Driver;
  7. DROP TABLE Post;
  8. DROP TABLE Regions;
  9.  
  10. CREATE TABLE Regions
  11. (
  12.     NUMBER INT PRIMARY KEY NOT NULL,
  13.     Name VARCHAR(80),
  14.     CONSTRAINT CHK_Regions CHECK (NUMBER < 100 OR NUMBER BETWEEN 100 AND 199 OR NUMBER BETWEEN 200 AND 299 OR NUMBER BETWEEN 700 AND 799)
  15. )
  16.  
  17. CREATE TABLE RegInfo (
  18.     Id INT PRIMARY KEY NOT NULL,
  19.     PostId INT NOT NULL,
  20.     CarId INT NOT NULL,
  21.     DriverId INT NOT NULL,
  22.     TrevelTime TIME,
  23.     Direction VARCHAR(80),
  24. )
  25.  
  26. CREATE TABLE Post(
  27.     Id INT PRIMARY KEY NOT NULL,
  28.     Name VARCHAR(80)
  29. )
  30.  
  31. CREATE TABLE Car(
  32.     Id INT PRIMARY KEY NOT NULL,
  33.     Model VARCHAR(80),
  34.     Color VARCHAR(80),
  35.     GovNum VARCHAR(80),
  36.     Region INT,
  37.     CONSTRAINT CHK_Person CHECK (GovNum LIKE '%[АВЕКМНОРСТУХABEKMHOPCTYX][0-9][0-9][0-9][АВЕКМНОРСТУХABEKMHOPCTYX][АВЕКМНОРСТУХABEKMHOPCTYX]%'
  38.     AND Region < 100 OR Region BETWEEN 100 AND 199 OR Region BETWEEN 200 AND 299 OR Region BETWEEN 700 AND 799)
  39. )
  40.  
  41. CREATE TABLE Driver(
  42.     Id INT PRIMARY KEY NOT NULL,
  43.     Name VARCHAR(80),
  44.     Surname VARCHAR(80),
  45. )
  46.  
  47. ALTER TABLE Car ADD
  48.     CONSTRAINT Region FOREIGN KEY (Region)
  49.     REFERENCES Regions (NUMBER)
  50.  
  51. ALTER TABLE RegInfo ADD
  52.     CONSTRAINT CarId FOREIGN KEY (CarId)
  53.     REFERENCES Car (Id)
  54.  
  55. ALTER TABLE RegInfo ADD
  56.     CONSTRAINT DriverId FOREIGN KEY (DriverId)
  57.     REFERENCES Driver (Id)
  58.  
  59. ALTER TABLE RegInfo ADD
  60.     CONSTRAINT PostId FOREIGN KEY (PostId)
  61.     REFERENCES Post (Id)
  62.  
  63.  
  64.  
  65.  
  66. INSERT Post (Id,Name)
  67. VALUES
  68.         (1,'A'),
  69.         (2,'B'),
  70.         (3,'C')
  71. GO
  72.  
  73. INSERT Regions (NUMBER,Name)
  74. VALUES
  75.         (96,'Свердловская область')
  76. GO
  77.  
  78.  
  79. INSERT Car (Id,Model, Color, GovNum,Region)
  80. VALUES
  81.         (1,'Lada','Red','A303AA',96)
  82. GO
  83.  
  84. INSERT Driver (Id, Name, Surname)
  85. VALUES
  86.         (1,'Иван','Иванов'),
  87.         (2,'Петр','Петров')
  88. GO
  89.  
  90. INSERT RegInfo (Id,PostId, CarId,DriverId,TrevelTime,Direction)
  91. VALUES
  92.         (1,1, 1, 1,'13:56:02', 'in'),
  93.         (2,2, 1, 2,'18:56:02', 'in'),
  94.         (3,3, 1,1,'15:56:02', 'in'),
  95.         (4,2, 1, 2,'18:56:02', 'in'),
  96.         (5,3, 1, 1,'18:56:02', 'in'),
  97.         (6,1, 1, 1,'19:56:02', 'out'),
  98.         (7,3, 1, 2,'18:56:02', 'in'),
  99.         (8,2, 1, 1,'12:56:02', 'in'),
  100.         (9,1, 1, 2,'18:56:02', 'in'),
  101.         (10,3, 1,1,'18:56:02', 'out'),
  102.         (11,3, 1,1,'10:56:02', 'in'),
  103.         (12,3, 1,2,'11:56:02', 'in')
  104. GO
  105.  
  106.  
  107. SELECT
  108.     *
  109.     FROM (
  110.         SELECT
  111.             TrevelTime AS 'Время',
  112.             Direction AS 'Направление',
  113.             Driver.Name AS 'Имя',
  114.             Driver.Surname AS 'Фамилия',
  115.             Post.Name AS 'Пост',
  116.             Car.Model AS 'Mодель машины',
  117.             Car.Color AS 'Цвет',
  118.             Car.GovNum AS 'Гос. номер',
  119.             Regions.Name AS 'Регион'
  120.          FROM
  121.             RegInfo
  122.             LEFT JOIN Driver ON DriverId=Driver.Id
  123.             LEFT JOIN Car ON CarId=Car.Id
  124.             LEFT JOIN Post ON PostId=Post.Id
  125. ) AS sel
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement