Advertisement
Guest User

Juwenalnia Praca

a guest
May 22nd, 2015
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.85 KB | None | 0 0
  1. CREATE DATABASE Juwenalnia
  2. USE Juwenalnia
  3. GO
  4.  
  5. CREATE TABLE Zespoly (
  6. ZespolID INT PRIMARY KEY IDENTITY (1,1),
  7. Nazwa_Zespolu VARCHAR(100)
  8. )
  9. GO
  10.  
  11. CREATE TABLE Godziny_Koncertow (
  12. ZespolID INT NOT NULL FOREIGN KEY REFERENCES Zespoly(ZespolID),
  13. Godziny_KoncertowID INT PRIMARY KEY IDENTITY(1,1),
  14. Poczatek datetime,
  15. Koniec datetime,
  16. )
  17. GO
  18.  
  19. INSERT INTO Zespoly (Nazwa_Zespolu) VALUES ('Rail');
  20. INSERT INTO Zespoly (Nazwa_Zespolu) VALUES ('Bas Tajpan & Bob One');
  21. INSERT INTO Zespoly (Nazwa_Zespolu) VALUES ('Happysad');
  22. INSERT INTO Zespoly (Nazwa_Zespolu) VALUES ('Dwa Sławy');
  23. INSERT INTO Zespoly (Nazwa_Zespolu) VALUES ('Last Road');
  24.  
  25. INSERT INTO Godziny_Koncertow (Poczatek, Koniec, ZespolID) VALUES ('2015-05-15 21:00', '2015-05-15 22:15', 1)
  26. INSERT INTO Godziny_Koncertow (Poczatek, Koniec, ZespolID) VALUES ('2015-05-15 22:15', '2015-05-15 23:30', 2)
  27. INSERT INTO Godziny_Koncertow (Poczatek, Koniec, ZespolID) VALUES ('2015-05-15 23:30', '2015-05-16 00:45', 3)
  28. INSERT INTO Godziny_Koncertow (Poczatek, Koniec, ZespolID) VALUES ('2015-05-16 00:45', '2015-05-16 02:00', 4)
  29. INSERT INTO Godziny_Koncertow (Poczatek, Koniec, ZespolID) VALUES ('2015-05-16 02:00', '2015-05-16 03:15', 5)
  30.  
  31. GO
  32.  
  33. CREATE FUNCTION Zloty_Trunek (@godzina datetime) RETURNS FLOAT
  34. AS
  35. BEGIN
  36.     DECLARE @ilosc_zlotego_trunku FLOAT
  37.     SET @ilosc_zlotego_trunku = 0
  38.    
  39.         IF @godzina = '2015-05-15 21:00'
  40.     BEGIN
  41.         SET @ilosc_zlotego_trunku = 0.5
  42.     END
  43.    
  44.     ELSE
  45.     IF @godzina = '2015-05-15 22:15'
  46.     BEGIN
  47.         SET @ilosc_zlotego_trunku = 1
  48.     END
  49.    
  50.     ELSE
  51.     IF @godzina = '2015-05-15 23:30'
  52.     BEGIN
  53.         SET @ilosc_zlotego_trunku = 3
  54.     END
  55.    
  56.     ELSE
  57.     IF @godzina = '2015-05-16 00:45'
  58.     BEGIN
  59.         SET @ilosc_zlotego_trunku = 5
  60.     END
  61.    
  62.     ELSE
  63.     BEGIN
  64.         SET @ilosc_zlotego_trunku = 7
  65.     END
  66.    
  67.     RETURN @ilosc_zlotego_trunku
  68. END
  69.  
  70. GO
  71.  
  72. CREATE FUNCTION Informacja(@ilosc FLOAT) RETURNS VARCHAR(30)
  73. AS
  74. BEGIN
  75.     DECLARE @komunikat VARCHAR(50)
  76.     IF @ilosc <2.0
  77.     BEGIN
  78.         SET @komunikat = 'Dobry koncert Juwenaliowy'
  79.     END
  80.     ELSE
  81.     BEGIN
  82.         SET @komunikat = 'Wracaj do akademika!'
  83.     END
  84.     RETURN @komunikat
  85. END
  86.  
  87. GO
  88.  
  89. CREATE FUNCTION Rekomendacja(@nazwa VARCHAR(100)) RETURNS VARCHAR(255)
  90. AS
  91. BEGIN
  92.     DECLARE @wynik VARCHAR(255)
  93.     IF @nazwa = 'Rail' OR @nazwa = 'Happysad' OR @nazwa = 'Last Road'
  94.     BEGIN
  95.         SET @wynik = CONCAT(@nazwa, ' - Gwiazda')
  96.     END
  97.     ELSE
  98.     IF @nazwa = 'Dwa Sławy'
  99.     BEGIN
  100.         SET @wynik = CONCAT(@nazwa, ' - Kapela gra za piwo')
  101.     END
  102.     ELSE
  103.     BEGIN
  104.         SET @wynik = CONCAT(@nazwa, ' - Lepiej zostać w akademiku')
  105.     END
  106.  
  107.     RETURN @wynik;
  108. END
  109.  
  110. GO
  111.  
  112. SELECT gk.Poczatek, gk.Koniec, z.Nazwa_Zespolu, dbo.Zloty_Trunek(gk.Poczatek) AS Ilosc_Zlotego_Trunku, dbo.Informacja(dbo.Zloty_Trunek(gk.Poczatek)) AS Komunikat, dbo.Rekomendacja(z.Nazwa_Zespolu) AS Rekomendacja FROM Godziny_Koncertow AS gk
  113. JOIN Zespoly AS z
  114. ON gk.ZespolID = z.ZespolID
  115. GROUP BY gk.Poczatek, gk.Koniec, z.Nazwa_Zespolu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement