Advertisement
Azz_142

Priprema1

Jun 22nd, 2018
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 5.11 KB | None | 0 0
  1. --1
  2.  
  3. CREATE DATABASE Priprema1
  4.  
  5. USE Priprema1
  6. GO
  7.  
  8. CREATE TABLE Proizvodi
  9. (
  10.     ProizvodID INT NOT NULL IDENTITY (1,1) CONSTRAINT PK_Proizvodi PRIMARY KEY,
  11.     Sifra NVARCHAR(10) NOT NULL CONSTRAINT UQ_Sifra UNIQUE,
  12.     Naziv NVARCHAR(50) NOT NULL,
  13.     Cijena DECIMAL(18,2)
  14. )
  15.  
  16. CREATE TABLE Skladista
  17. (
  18.     SkladisteID INT NOT NULL IDENTITY (1,1) CONSTRAINT PK_Skladista PRIMARY KEY,
  19.     Naziv NVARCHAR(50) NOT NULL,
  20.     Oznaka NVARCHAR(10) NOT NULL CONSTRAINT UQ_Oznaka UNIQUE,
  21.     Lokacija NVARCHAR(50) NOT NULL
  22. )
  23.  
  24. CREATE TABLE SkladisteProizvodi
  25. (
  26.     ProizvodID INT NOT NULL CONSTRAINT FK_SkladisteProizvodi_Proizvodi FOREIGN KEY REFERENCES Proizvodi (ProizvodID),
  27.     SkladisteID INT NOT NULL CONSTRAINT FK_SkladisteProizvodi_Skladista FOREIGN KEY REFERENCES Skladista (SkladisteID),
  28.     CONSTRAINT PK_SkladisteProizvodi PRIMARY KEY (ProizvodID, SkladisteID),
  29.     Stanje DECIMAL(18,2) NOT NULL
  30. )
  31.  
  32. --2
  33.  
  34. INSERT INTO Skladista
  35. VALUES ('Skladiste One', 'SK1', 'Mostar'),
  36.        ('Skladiste Two', 'Sk2', 'Sarajevo'),
  37.        ('Skladiste Three', 'Sk3', 'Banja Luka')
  38.  
  39. USE AdventureWorks2017
  40. GO
  41.  
  42. INSERT INTO Priprema1.dbo.Proizvodi
  43. SELECT  S.ProductNumber, S.Name, S.ListPrice
  44. FROM (SELECT TOP 10 P.ProductNumber, PS.Name, P.ListPrice, COUNT(SOD.ProductID) AS NajProdavaniji
  45.       FROM Production.Product AS P INNER JOIN Production.ProductSubcategory AS PS
  46.       ON P.ProductSubcategoryID = PS.ProductSubcategoryID INNER JOIN Sales.SalesOrderDetail AS SOD
  47.       ON P.ProductID = SOD.ProductID
  48.       WHERE PS.Name LIKE '%Bikes%'
  49.       GROUP BY P.ProductNumber, PS.Name, P.ListPrice
  50. ORDER BY COUNT(SOD.ProductID) DESC) AS S
  51.  
  52.  
  53. USE Priprema1
  54. GO
  55.  
  56. INSERT INTO SkladisteProizvodi
  57. SELECT P.ProizvodID, (SELECT S.SkladisteID
  58.                       FROM Skladista AS S
  59.                       WHERE S.SkladisteID = 1), 100
  60. FROM Proizvodi AS P
  61.  
  62. INSERT INTO SkladisteProizvodi
  63. SELECT P.ProizvodID, (SELECT S.SkladisteID
  64.                       FROM Skladista AS S
  65.                       WHERE S.SkladisteID = 2), 100
  66. FROM Proizvodi AS P
  67.  
  68. INSERT INTO SkladisteProizvodi
  69. SELECT P.ProizvodID, (SELECT S.SkladisteID
  70.                       FROM Skladista AS S
  71.                       WHERE S.SkladisteID = 3), 100
  72. FROM Proizvodi AS P
  73.  
  74. --3
  75.  
  76. CREATE PROCEDURE usp_stanje_update
  77. (
  78.     @ProizvodID INT,
  79.     @SkladisteID INT,
  80.     @Kolicina int
  81. )
  82. AS
  83. BEGIN
  84.     UPDATE SkladisteProizvodi
  85.     SET Stanje = Stanje + @Kolicina
  86.     WHERE ProizvodID = @ProizvodID AND SkladisteID = @SkladisteID
  87. END
  88.  
  89.  select*from SkladisteProizvodi
  90.  
  91. EXEC usp_stanje_update 2, 1, 30
  92.  
  93. --4
  94.  
  95. CREATE NONCLUSTERED INDEX IX_Proizvodi ON Proizvodi
  96. (Sifra, Naziv) INCLUDE (Cijena)
  97.  
  98. SELECT * FROM Proizvodi
  99. WHERE Sifra IS NULL OR Cijena > 95
  100.  
  101. ALTER INDEX IX_Proizvodi ON Proizvodi
  102. DISABLE
  103.  
  104. --5
  105.  
  106. CREATE VIEW view_pro_skl_sklpro AS
  107.     SELECT P.Sifra, P.Naziv, P.Cijena, S.Oznaka, S.Naziv AS N, S.Lokacija, SK.Stanje
  108.     FROM Proizvodi AS P INNER JOIN SkladisteProizvodi AS SK
  109.         ON P.ProizvodID = SK.ProizvodID INNER JOIN Skladista AS S
  110.         ON SK.SkladisteID = S.SkladisteID
  111.  
  112. --6
  113.  
  114. CREATE PROCEDURE usp_sifra_proizvoda
  115. (
  116.     @Sifra NVARCHAR(10)
  117. )
  118. AS
  119. BEGIN
  120.     SELECT V.Sifra, V.Naziv, V.Cijena, SUM(V.Stanje) AS Ukupno
  121.     FROM view_pro_skl_sklpro AS V
  122.     WHERE V.Sifra = @Sifra
  123.     GROUP BY V.Sifra, V.Naziv, V.Cijena
  124. END
  125.  
  126. EXEC usp_sifra_proizvoda 'BK-R93R-56'
  127.  
  128. --7
  129.  
  130. CREATE PROCEDURE usp_insert_proizvodi
  131. (
  132.     @Sifra NVARCHAR(10),
  133.     @Naziv NVARCHAR(50),
  134.     @Cijena DECIMAL(18,2)
  135. )
  136. AS
  137. BEGIN
  138.     INSERT INTO Proizvodi
  139.     VALUES (@Sifra, @Naziv, @Cijena)
  140.  
  141.     INSERT INTO SkladisteProizvodi
  142.     VALUES ((SELECT ProizvodID FROM Proizvodi WHERE Naziv = @Naziv), 1, 0)
  143.  
  144.     INSERT INTO SkladisteProizvodi
  145.     VALUES ((SELECT ProizvodID FROM Proizvodi WHERE Naziv = @Naziv), 2, 0)
  146.    
  147.     INSERT INTO SkladisteProizvodi
  148.     VALUES ((SELECT ProizvodID FROM Proizvodi WHERE Naziv = @Naziv), 3, 0)
  149. END
  150.  
  151. EXEC usp_insert_proizvodi '123-456-78', 'Novi Naziv', 1599
  152.  
  153. --8
  154.  
  155. CREATE PROCEDURE usp_delete_proizvod
  156. (
  157.     @Sifra NVARCHAR(10)
  158. )
  159. AS
  160. BEGIN
  161.     DELETE SkladisteProizvodi
  162.     FROM Proizvodi AS P INNER JOIN SkladisteProizvodi AS SK
  163.         ON P.ProizvodID = SK.ProizvodID AND Sifra = @Sifra
  164.    
  165.     DELETE FROM Proizvodi
  166.     WHERE Sifra = @Sifra
  167. END
  168.  
  169. EXEC usp_delete_proizvod '123-456-78'
  170.  
  171. --9
  172. CREATE PROCEDURE usp_procedura
  173. (@Sifra nvarchar(10) = null,
  174. @Oznaka nvarchar(10) = null,
  175. @Lokacija nvarchar(50)= null )
  176. AS
  177. BEGIN
  178.     SELECT * FROM view_pro_skl_sklpro
  179.     where (Sifra=@Sifra or @Sifra is null) and
  180.          (Oznaka = @Oznaka or @Oznaka is null) and
  181.          (Lokacija=@Lokacija or @Lokacija is null)
  182. END
  183.  
  184. EXEC usp_procedura
  185.  
  186. EXEC usp_procedura 'BK-R93R-56'
  187.  
  188. EXEC usp_procedura @Oznaka='Sk3'
  189.  
  190. EXEC usp_procedura @Lokacija = 'Banja Luka'
  191.  
  192. EXEC usp_procedura 'BK-R93R-56', 'Sk3', 'Banja Luka'
  193.  
  194. --10
  195.  
  196. BACKUP DATABASE Priprema1 TO
  197. DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\Priprema1.bak'
  198.  
  199. BACKUP DATABASE Priprema1 TO
  200. DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\Priprema1_diff.bak'
  201. WITH DIFFERENTIAL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement