Advertisement
neogz

integralni dbms

Jun 24th, 2015
354
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 6.34 KB | None | 0 0
  1. -- integralni
  2.  
  3. USE     [AdventureWorks2014]
  4. SELECT  P.FirstName + ' ' + P.LastName AS ImePrezime,
  5.         E.JobTitle AS Posao,
  6.         CONVERT(nvarchar(10), HireDate, 103) AS DatumZaposlenja,
  7.         ROUND(SUM(TotalDue),2) AS Zarada
  8. FROM    [HumanResources].[Employee] AS E                JOIN        [Person].[Person] AS P
  9.         ON E.BusinessEntityID = P.BusinessEntityID      JOIN        [Person].[EmailAddress] AS PEA
  10.         ON P.BusinessEntityID = PEA.BusinessEntityID    LEFT JOIN   [Sales].[SalesPerson] AS SSP
  11.         ON P.BusinessEntityID = SSP.BusinessEntityID     JOIN   [Sales].[SalesOrderHeader] AS SOH
  12.         ON SSP.BusinessEntityID = SOH.SalesPersonID
  13. GROUP BY    P.FirstName + ' ' + P.LastName,
  14.             E.JobTitle,
  15.             E.HireDate
  16. ORDER BY 3 DESC
  17.  
  18. -- upit 2
  19.  
  20. SELECT  P.FirstName, P.LastName,
  21.         CC.CardType,
  22.         CC.CardNumber,
  23.         COUNT(SOH.CreditCardApprovalCode) AS BrojNarudzbi,
  24.         SUM(SOH.TotalDue) AS UkupnoPlaceno
  25.  
  26. FROM    [Person].[Person] AS P                          JOIN        [Sales].[PersonCreditCard] AS PCC
  27.         ON P.BusinessEntityID = PCC.BusinessEntityID    JOIN        [Sales].[CreditCard] AS CC
  28.         ON PCC.CreditCardID = CC.CreditCardID           JOIN        [Sales].[SalesOrderHeader] AS SOH
  29.         ON CC.CreditCardID = SOH.CreditCardID
  30.  
  31. GROUP BY P.FirstName, P.LastName, CC.CardType, CC.CardNumber
  32. HAVING  COUNT(SOH.CreditCardApprovalCode) > 20
  33. ORDER BY 6 DESC
  34.  
  35. ----------------------------/////////////////////////////////////////////----------------------------
  36.  
  37.  
  38. CREATE DATABASE [IB130260v01]
  39.  
  40. CREATE DATABASE [testic] ON PRIMARY
  41. (
  42.     NAME = 'testic',
  43.     FILENAME = 'E:\DBMS\testic.MDF',
  44.     SIZE = 10MB,
  45.     MAXSIZE = UNLIMITED,
  46.     FILEGROWTH = 10%
  47. )
  48. LOG ON
  49. (
  50.     NAME = 'testic_log',
  51.     FILENAME = 'E:\DBMS\testic_log.LDF',
  52.     SIZE = 2MB,
  53.     MAXSIZE = UNLIMITED,
  54.     FILEGROWTH = 10%
  55. )
  56.  
  57. USE testic
  58.  
  59. CREATE TABLE Kandidati (
  60.     KandidatID      int             IDENTITY(1,1) PRIMARY KEY,
  61.     Ime             nvarchar(30)    NOT NULL,
  62.     Prezime         nvarchar(30)    NOT NULL,
  63.     JBMG            nvarchar(13)    NOT NULL UNIQUE,
  64.     DatumRodjenja   date            NOT NULL,
  65.     MjestoRodjenja  nvarchar(30)    ,
  66.     Telefon         nvarchar(20)    ,
  67.     Email           nvarchar(50)    UNIQUE
  68. )
  69. DROP TABLE Testovi
  70. CREATE TABLE Testovi (
  71.     TestID          int             IDENTITY(1,1) PRIMARY KEY,
  72.     KandidatID      int             NOT NULL FOREIGN KEY(KandidatID) REFERENCES dbo.Kandidati(KandidatID),
  73.     Naziv           nvarchar(50)    NOT NULL,
  74.     Datum           datetime2   NOT NULL,
  75.     Oznaka          nvarchar(10)    NOT NULL UNIQUE,
  76.     Oblast          nvarchar(50)    NOT NULL,
  77.     MaxBrojBodova   int             NOT NULL,
  78.     Opis            nvarchar(250)
  79. )
  80. DROP TABLE RezultatiTesta
  81. CREATE TABLE RezultatiTesta (
  82.     RezultatTestaID int             IDENTITY(1,1) PRIMARY KEY,
  83.     TestID          int             NOT NULL FOREIGN KEY(TestID) REFERENCES dbo.Testovi(TestID),
  84.     Polozio         bit             NOT NULL,
  85.     OsvojeniBodovi  decimal(18,2)   NOT NULL,
  86.     Napomena        nvarchar(max)  
  87. )
  88. -- 3a/ Insert
  89. USE testic
  90. INSERT INTO Kandidati (Ime, Prezime, JBMG, DatumRodjenja, MjestoRodjenja, Telefon, Email)
  91. SELECT TOP 10
  92.         p.FirstName, p.LastName,
  93.         REPLACE(RIGHT(p.rowguid, 13), '-', '0'),
  94.         p.ModifiedDate,
  95.         a.City,
  96.         ppp.PhoneNumber,
  97.         email.EmailAddress
  98. FROM AdventureWorks2012.Person.Person as p JOIN AdventureWorks2012.Person.BusinessEntityAddress  as ea
  99.     ON p.BusinessEntityID = ea.BusinessEntityID JOIN AdventureWorks2012.Person.Address  as a
  100.     ON ea.AddressID = a.AddressID JOIN AdventureWorks2012.Person.PersonPhone as ppp
  101.     ON p.BusinessEntityID = ppp.BusinessEntityID JOIN AdventureWorks2012.Person.EmailAddress as email
  102.     ON p.BusinessEntityID = email.BusinessEntityID
  103.  
  104. SELECT * FROM Testovi
  105. -- 3b/ insert u testove
  106. INSERT INTO Testovi (KandidatID, Datum,Naziv,Oznaka,Oblast,MaxBrojBodova,Opis)
  107.  VALUES( 1, GETDATE(), 'DBMS integralni', 'DBMS', 'Oko baza', 100, 'Zadnji rok sa DBMS ispit')
  108.  
  109. INSERT INTO Testovi (KandidatID, Datum,Naziv,Oznaka,Oblast,MaxBrojBodova,Opis)
  110. VALUES( 2, '2.2.1992', 'KT Integralni', 'KT', 'Mile voli Cisco', 100, 'Test')
  111.  
  112. INSERT INTO Testovi (KandidatID, Datum,Naziv,Oznaka,Oblast,MaxBrojBodova,Opis)
  113. VALUES( 3, GETDATE(), 'Sport i zdravlje 1', 'SIZ1', 'beze', 100, NULL)
  114.  
  115. --- 4/ napraviti proceduru
  116.  
  117. CREATE PROCEDURE [usp_RezultatiTesta_Insert]
  118. @TestID int,
  119. @Polozio bit,
  120. @OsvojeniBodovi decimal(18,2),
  121. @Napomena nvarchar(max)
  122. AS
  123. BEGIN
  124.     INSERT INTO RezultatiTesta
  125.     VALUES(
  126.     @TestID, @Polozio, @OsvojeniBodovi, @Napomena
  127.     )
  128. END
  129.  -- test procedure i unos min 10 zapisa
  130. EXEC usp_RezultatiTesta_Insert 6,0,75.60,'Prvi zapis';
  131. EXEC usp_RezultatiTesta_Insert 6,0,12.60,'Drugi zapis';
  132. EXEC usp_RezultatiTesta_Insert 6,0,23.63,'Treci zapis';
  133. EXEC usp_RezultatiTesta_Insert 4,0,34.95,'Cetvrti zapis';
  134. EXEC usp_RezultatiTesta_Insert 5,0,45.60,'Peti zapis';
  135. EXEC usp_RezultatiTesta_Insert 6,0,56.70,'Sesti zapis';
  136. EXEC usp_RezultatiTesta_Insert 4,0,67.60,'Sedmi zapis';
  137. EXEC usp_RezultatiTesta_Insert 6,0,78.26,'Osmi zapis';
  138. EXEC usp_RezultatiTesta_Insert 5,0,89.60,'Deveti zapis';
  139. EXEC usp_RezultatiTesta_Insert 6,0,90.26,'Deseti zapis';
  140. EXEC usp_RezultatiTesta_Insert 5,0,100,'11ti zapis';
  141.  
  142. -----------------------------------------------------------
  143.  
  144. -- 5 / napraviti view
  145.  
  146. CREATE VIEW [view_Rezultati_Testiranja]
  147. AS
  148. SELECT K.Ime, K.Prezime, K.JBMG, K.Telefon, K.Email, T.Datum, T.Naziv, T.Oznaka, T.Oblast, T.MaxBrojBodova, RT.Polozio, RT.OsvojeniBodovi,
  149.         RT.OsvojeniBodovi * 100 / T.MaxBrojBodova AS ProcenatNaTestu
  150. FROM    Kandidati AS K JOIN Testovi AS T
  151.         ON K.KandidatID = T.KandidatID JOIN RezultatiTesta as RT
  152.         ON T.TestID = RT.TestID
  153. -- pokretanje viewa
  154. SELECT * FROM view_Rezultati_Testiranja
  155.  
  156. --- 6
  157.  
  158. CREATE PROCEDURE [usp_RezultatiTesta_SelectByOznaka]
  159.     @Oznaka         nvarchar(10),
  160.     @Polozio        bit
  161. AS
  162. BEGIN
  163.     SELECT * FROM view_Rezultati_Testiranja  as t
  164.     WHERE @Oznaka = t.Oznaka AND @Polozio = t.Polozio
  165. END
  166.  
  167. -- test procedure
  168. EXEC usp_RezultatiTesta_SelectByOznaka DBMS,0;
  169.  
  170. ------- 7 //////////////////////////////////////////////////////////////////
  171. -- izmjena rezultata testiranja
  172.  
  173. CREATE PROCEDURE [usp_RezultatiTesta_Update]
  174. @RezultatTestaID int, @TestID int, @Polozio bit, @OsvojeniBodovi decimal(18,2), @Napomena nvarchar(max)
  175. AS
  176. BEGIN
  177.     UPDATE RezultatiTesta
  178.     SET TestID = @TestID,
  179.         Polozio = @Polozio,
  180.         OsvojeniBodovi = @OsvojeniBodovi,
  181.         Napomena = @Napomena
  182.     WHERE @RezultatTestaID = RezultatTestaID
  183. END
  184. ---
  185. EXEC usp_RezultatiTesta_Update 1,6,1,85.60,'Prvi zapis drugi put';
  186.  
  187. -----   8
  188.  
  189. CREATE PROCEDURE [usp_Testovi_Delete]
  190. AS
  191. BEGIN
  192.         DELETE RezultatiTesta
  193.         DELETE Testovi
  194. END
  195.  
  196. -- testiranje 8
  197. SELECT * FROM RezultatiTesta
  198. SELECT * FROM Testovi
  199.  
  200. EXEC usp_Testovi_Delete;
  201.  
  202. SELECT * FROM RezultatiTesta
  203. SELECT * FROM Testovi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement