Advertisement
boky8

OBP MI1 27.11.2015.

Nov 27th, 2015
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.57 KB | None | 0 0
  1. USE AdventureWorksOBP
  2. GO
  3.  
  4. -- Zadatak 1.
  5.  
  6. SELECT
  7.     P.Naziv         [Naziv proizvoda],
  8.     SUM(S.Kolicina) [Prodana količina]
  9. FROM Proizvod P
  10. INNER JOIN Stavka S
  11.     ON S.ProizvodID = P.IDProizvod
  12. INNER JOIN Racun R
  13.     ON R.IDRacun = S.RacunID
  14. INNER JOIN Kupac K
  15.     ON K.IDKupac = R.KupacID
  16. INNER JOIN Grad G
  17.     ON G.IDGrad = K.GradID
  18. INNER JOIN Drzava D
  19.     ON D.IDDrzava = G.IDGrad
  20. WHERE
  21.     D.Naziv = 'Hrvatska'
  22.     AND
  23.     (
  24.         K.Telefon LIKE '1%'
  25.         OR
  26.         K.Telefon LIKE '3%'
  27.         OR
  28.         K.Telefon LIKE '5%'
  29.     )
  30. GROUP BY P.Naziv
  31. GO
  32.  
  33. -- Zadatak 2.
  34.  
  35. INSERT INTO Drzava (Naziv)
  36. VALUES
  37.     ('Japan')
  38.  
  39. INSERT INTO Grad (Naziv, DrzavaID)
  40. VALUES
  41.     ('Yokohama', SCOPE_IDENTITY())
  42.  
  43. INSERT INTO Kupac (Ime, Prezime, Email, Telefon, GradID)
  44. VALUES
  45.     ('Đuro', 'Đurić', 'ddjuric@mail.jp', '555-327-123', SCOPE_IDENTITY())
  46. GO
  47.  
  48. -- Zadatak 3.
  49.  
  50. CREATE TABLE NajmanjeProdavaniProivzodi
  51. (
  52.     IDProizvod INT,
  53.     Naziv nvarchar(50),
  54.     ProdanihKomada INT
  55. )
  56. GO
  57.  
  58. INSERT INTO NajmanjeProdavaniProivzodi
  59. (
  60.     IDProizvod,
  61.     Naziv,
  62.     ProdanihKomada
  63. )
  64. SELECT
  65.     P.IDProizvod,
  66.     P.Naziv,
  67.     SUM(S.Kolicina)
  68. FROM Stavka S
  69. INNER JOIN Proizvod P
  70.     ON P.IDProizvod = S.ProizvodID
  71. GROUP BY P.IDProizvod, P.Naziv
  72. GO
  73.  
  74. -- Zadatak 4.
  75.  
  76. CREATE TABLE Student
  77. (
  78.     IDStudent INT PRIMARY KEY IDENTITY,
  79.     Ime nvarchar(50) NOT NULL,
  80.     Prezime nvarchar(50) NOT NULL,
  81.     DatumRodenja DATE NOT NULL,
  82.     JMBAG CHAR(11) UNIQUE NOT NULL,
  83.     CijenaSkolarine MONEY NOT NULL,
  84.     JeLiRedovan BIT DEFAULT 1
  85. )
  86. GO
  87.  
  88. CREATE TABLE Kolegij
  89. (
  90.     IDKolegij INT PRIMARY KEY IDENTITY,
  91.     Naziv nvarchar(50) NOT NULL,
  92.     ECTS INT NOT NULL
  93.  
  94.     CHECK (ECTS BETWEEN 1 AND 7)
  95. )
  96. GO
  97.  
  98. CREATE TABLE Upis
  99. (
  100.     IDUpis INT PRIMARY KEY IDENTITY,
  101.     StudentID INT NOT NULL,
  102.     KolegijID INT NOT NULL
  103.  
  104.     FOREIGN KEY (StudentID) REFERENCES Student(IDStudent),
  105.     FOREIGN KEY (KolegijID) REFERENCES Kolegij(IDKolegij)
  106. )
  107. GO
  108.  
  109. -- Zadatak 5.
  110.  
  111. CREATE VIEW vwKreditneKartice
  112. AS
  113.     SELECT *
  114.     FROM KreditnaKartica KK
  115. GO
  116.  
  117. SELECT
  118.     KK.Tip [Tip kartice],
  119.     KK.IstekGodina [Godina isteka],
  120.     COUNT(*) [Koliko ih ističe]
  121. FROM vwKreditneKartice KK
  122. GROUP BY KK.Tip, KK.IstekGodina
  123. GO
  124.  
  125. -- Zadatak 6.
  126.  
  127.  
  128.  
  129. -- Zadatak 12.
  130.  
  131. CREATE PROC prUmetanjeGradova
  132.     @NazivDrzave nvarchar(50),
  133.     @NazivGrada1 nvarchar(50),
  134.     @NazivGrada2 nvarchar(50)
  135. AS
  136.     DECLARE @IDDrzave INT
  137.  
  138.     IF EXISTS(SELECT * FROM Drzava WHERE Naziv = @NazivDrzave) BEGIN
  139.         SELECT @IDDrzave = IDDrzava
  140.         FROM Drzava
  141.         WHERE Naziv = @NazivDrzave
  142.     END
  143.     ELSE BEGIN
  144.         INSERT INTO Drzava (Naziv)
  145.         VALUES
  146.             (@NazivDrzave)
  147.  
  148.         SET @IDDrzave = SCOPE_IDENTITY()
  149.     END
  150.  
  151.     INSERT INTO Grad (Naziv, DrzavaID)
  152.     VALUES
  153.         (@NazivGrada1, @IDDrzave),
  154.         (@NazivGrada2, @IDDrzave)
  155. GO
  156.  
  157. EXEC prUmetanjeGradova 'Kolumbija', 'Gradic1', 'Gradak'
  158. EXEC prUmetanjeGradova 'Kolumbija', 'Gradic1', 'Gradak'
  159. GO
  160.  
  161. -- Zadatak 13.
  162.  
  163. CREATE PROC prCreateOrUpdate
  164.     @IDPotkategorije INT, /* NULL - CREATE, OSTALO - UPDATE */
  165.     @NazivPotkategorije nvarchar(50),
  166.     @IDKategorije INT
  167. AS
  168.     IF @IDPotkategorije IS NULL BEGIN /* CREATE */
  169.         INSERT INTO Potkategorija (KategorijaID, Naziv)
  170.         VALUES
  171.             (@IDKategorije, @NazivPotkategorije)
  172.     END
  173.     ELSE BEGIN /* UPDATE */
  174.         UPDATE Potkategorija
  175.         SET
  176.             KategorijaID = @IDKategorije,
  177.             Naziv = @NazivPotkategorije
  178.         WHERE IDPotkategorija = @IDPotkategorije
  179.     END
  180. GO
  181.  
  182. CREATE PROC prReadOrDelete
  183.     @IDPotkategorije INT,
  184.     @DELETE bit /* 0 - READ, 1 - DELETE */
  185. AS
  186.     IF @DELETE = 0 BEGIN /* READ */
  187.         SELECT *
  188.         FROM Potkategorija
  189.         WHERE IDPotkategorija = @IDPotkategorije
  190.     END
  191.     ELSE IF @DELETE = 1 BEGIN /* DELETE */
  192.         DELETE
  193.         FROM Potkategorija
  194.         WHERE IDPotkategorija = @IDPotkategorije
  195.     END
  196. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement