Advertisement
Guest User

Untitled

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