Facebook
From Mungo Cassowary, 3 Years ago, written in SQL.
Embed
Download Paste or View Raw
Hits: 127
  1. CREATE DATABASE instytucja1
  2. USE instytucja1
  3.  
  4. CREATE TABLE Wydzialy
  5. (
  6. nazwaW VARCHAR(55),
  7. idWydz VARCHAR(10) NOT NULL,
  8. kier VARCHAR(10)
  9. );
  10.  
  11. CREATE TABLE Projekty
  12. (
  13. Wydz VARCHAR(10),
  14. idProj VARCHAR(10) NOT NULL,
  15. budżet INT NOT NULL
  16. );
  17.  
  18. CREATE TABLE Pracownicy
  19. (
  20. Wydz VARCHAR(10),
  21. idPrac VARCHAR(10) NOT NULL,
  22. nazwisko VARCHAR(55),  
  23. Proj VARCHAR(10)
  24. );
  25.  
  26. CREATE TABLE Zatrudnienie
  27. (
  28. Prac VARCHAR(10) NOT NULL,
  29. od DATE NOT NULL,
  30. do DATE,
  31. stanow VARCHAR(55) NOT NULL,
  32. placa INT
  33. );
  34.  
  35. INSERT INTO Wydzialy(nazwaW,idWydz,kier)
  36. VALUES
  37. ('Kadry','W1','K2'),
  38. ('Place','W2','K1'),
  39. ('Ksiegowosc','W3','K3');
  40.  
  41.  
  42. INSERT INTO Projekty(Wydz,idProj,budżet)
  43. VALUES
  44. ('W1','Prj1',12000),
  45. ('W1','Prj2',29000),
  46. ('W2','Prj3',30000),
  47. ('W3','Prj4',10000);
  48.  
  49. INSERT INTO Pracownicy(Wydz,idPrac,nazwisko,Proj)
  50. VALUES
  51. ('W2','K1','Marecka','Prj1'),
  52. ('W1','K2','Zoltko','Prj1'),
  53. ('W1','K3','Nowak','Prj3'),
  54. ('W2','K4','Kowalski','Prj4'),
  55. ('W1','K5','Tkacz','Prj4');
  56.  
  57. INSERT INTO Zatrudnienie(Prac,od,do,stanow,placa)
  58. VALUES
  59. ('K1','2015/01/01','2017/12/31','st1',2000),
  60. ('K2','2018/01/01','','st2',2050),
  61. ('K1','2018/01/01','','st2',3100),
  62. ('K3','2019/01/01','','st1',4900),
  63. ('K4','2018/01/01','','st1',5500),
  64. ('K5','2019/01/01','','st1',6000);
  65.  
  66. ALTER TABLE Wydzialy
  67. ADD CONSTRAINT PK_Wydzialy PRIMARY KEY(idWydz);
  68.  
  69. ALTER TABLE Projekty
  70. ADD CONSTRAINT PK_Projekty PRIMARY KEY(idProj);
  71.  
  72. ALTER TABLE Pracownicy
  73. ADD CONSTRAINT PK_Pracownicy PRIMARY KEY(idPrac);
  74.  
  75. ALTER TABLE Zatrudnienie
  76. ADD CONSTRAINT PK_Zatrudnienie PRIMARY KEY(prac,od,stanow);
  77.  
  78. ALTER TABLE Wydzialy
  79. ADD CONSTRAINT FK_Wydzialy FOREIGN KEY(kier) REFERENCES Pracownicy(idPrac);
  80.  
  81. ALTER TABLE Projekty
  82. ADD CONSTRAINT FK_Projekty FOREIGN KEY(Wydz) REFERENCES Wydzialy(idWydz);
  83.  
  84. ALTER TABLE Pracownicy
  85. ADD CONSTRAINT FK_Pracownicy FOREIGN KEY(Wydz) REFERENCES Wydzialy(idWydz);
  86.  
  87. ALTER TABLE Pracownicy
  88. ADD CONSTRAINT FK_Pracownicy1 FOREIGN KEY(Proj) REFERENCES Projekty(idProj);
  89.  
  90. ALTER TABLE Zatrudnienie
  91. ADD CONSTRAINT FK_Zatrudnienie FOREIGN KEY(Prac) REFERENCES Pracownicy(idPrac);
  92.  
  93.  
  94. SELECT Prac, Wydzialy.nazwaW FROM Zatrudnienie INNER JOIN Pracownicy ON Zatrudnienie.Prac = Pracownicy.idPrac INNER JOIN Wydzialy ON Pracownicy.Wydz = Wydzialy.idWydz WHERE Zatrudnienie.do ='';
  95.  
  96. SELECT Prac FROM Zatrudnienie WHERE DATEDIFF(DAY, Zatrudnienie.do, GETDATE()) > 365;
  97.  
  98. SELECT placa FROM Zatrudnienie z WHERE z.prac NOT IN(SELECT w.kier FROM Wydzialy w);