Advertisement
Guest User

Vjezba 3

a guest
Mar 23rd, 2017
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 4.74 KB | None | 0 0
  1. USE AdventureWorks2014
  2.  
  3. /*1. Za sve osobe koje imaju unesenu titulu kreirati poruku dobrodošlice u sljedećem formatu:
  4. Dobrodošli [titula] [ime i prezime], trenutno je [trenutno vrijeme] sati
  5. Upit napisati minimalno na 3 načina kombinirajući različite T-SQL funkcije!*/
  6.  
  7. --1
  8.  
  9. SELECT 'Dobrodošli ' + Title+ ' ' + FirstName + ' ' +LastName AS Dobrodoslica,
  10.         +'trenutno je  '+ convert(nvarchar(5) ,
  11.         (convert(time,SYSDATETIME ()))) + ' ' + 'sati' AS Vrijeme
  12. FROM Person.Person
  13. WHERE Title IS NOT NULL
  14.  
  15. SELECT 'Dobrodošli' + ' ' + Title + ' ' + FirstName + ' ' + LastName + ' ' + 'trenutno je'
  16.         + ' ' + SUBSTRING((CONVERT(nvarchar,(CONVERT(TIME, SYSDATETIMEOFFSET())))),0,6) + ' ' + 'sati'
  17. FROM Person.Person
  18. WHERE Title IS NOT NULL
  19.  
  20. SELECT 'Dobrodošli' + ' ' + Title + ' ' + FirstName + ' ' + LastName + ' ' + 'trenutno je' + ' '
  21.        + CONVERT(nvarchar(5),(CONVERT (time, SYSDATETIME()))) + ' ' + 'sati'
  22. FROM Person.Person
  23. WHERE Title IS NOT NULL
  24.  
  25. /*2. Prikazati minimalnu, maksimalnu i prosječnu cijenu proizvoda ali samo onih gdje je cijena
  26. veća od 0 KM.*/
  27.  
  28. --2
  29. SELECT  MAX(ListPrice) AS 'Maximalna cijena proizovda',
  30.         MIN(ListPrice) AS 'Minimalna cijena proizovda',
  31.         ROUND (AVG(ListPrice),2) AS 'Prosjecna cijena proizvoda'
  32. FROM Production.Product
  33. WHERE ListPrice >0
  34.  
  35. /*3. Kreirati upit koji prikazuje ukupan broj kupaca po teritoriji. Lista treba da sadrži sljedeće
  36. kolone: ID teritorije, ukupan broj kupaca. Uzeti u obzir samo teritorije gdje ima više od 1000
  37. kupaca.*/
  38.  
  39. --3
  40.  
  41. SELECT  TerritoryID ,count(CustomerID) AS 'Broj kupaca'
  42. FROM Sales.Customer
  43. GROUP BY TerritoryID
  44. HAVING COUNT (CustomerID) >1000
  45.  
  46. /*4. Prikazati ukupan broj proizvoda po modelu. Lista treba da sadrži ID modela proizvoda i
  47. ukupan broj proizvoda. Uslov je da proizvod pripada nekom modelu i da je ukupan broj
  48. proizvoda po modelu veći od 1. Također, prebrojati samo proizvode čiji naziv počinje slovom 'S'.*/
  49.  
  50. --4 krivi pokusaj
  51.  
  52. SELECT Name,ProductModelID AS 'Model proizvoda', SafetyStockLevel AS 'Ukupan broj proizvoda'
  53. FROM Production.Product
  54. WHERE (ProductModelID IS NOT NULL ) AND (SafetyStockLevel >1 ) AND (Name LIKE '[S]%')
  55. --4 Ispravno uradnjeno
  56. SELECT ProductModelID AS Model , COUNT(ProductID) AS Ukupno
  57. FROM Production.Product
  58. WHERE ProductModelID IS NOT NULL AND Name LIKE 'S%'
  59. GROUP BY ProductModelID
  60. HAVING COUNT(ProductID) >1
  61.  
  62.  
  63. /*5. Kreirati upit koji prikazuje 10 najprodavanijih proizvoda. Lista treba da sadrži ID proizvoda i
  64. ukupnu količinu prodaje. Provjeriti da li ima proizvoda sa istom količinom prodaje kao zapis pod
  65. rednim brojem 10?*/
  66.  
  67. --5
  68.  
  69. SELECT Top 10 WITH TIES ProductID, SUM(OrderQty)
  70. FROM sales.SalesOrderDetail
  71. GROUP BY ProductID
  72. ORDER BY SUM(OrderQty) DESC
  73.  
  74. /*6. Kreirati upit koji prikazuje zaradu od prodaje proizvoda. Lista treba da sadrži ID proizvoda,
  75. ukupnu zaradu bez uračunatog popusta i ukupnu zaradu sa uračunatim popustom. Iznos zarade
  76. zaokružiti na dvije decimale. Uslov je da se prikaže zarada samo za stavke gdje je bilo popusta.
  77. Listu sortirati po zaradi opadajućim redoslijedom.*/
  78.  
  79.  
  80. --6 Tacno
  81.  
  82. SELECT ProductID, ROUND (SUM(OrderQty *UnitPrice ),2) AS 'Zarada bez popusta',
  83.         ROUND ((SUM((OrderQty *UnitPrice )-(OrderQty *UnitPrice * UnitPriceDiscount))),2) AS 'Cijena sa popustom'
  84. FROM Sales.SalesOrderDetail
  85. WHERE UnitPriceDiscount >0
  86. GROUP BY ProductID
  87. ORDER BY "Zarada bez popusta" DESC
  88.  
  89. --6*- Ovo je samo uracunalo i sumiralo samo one proizvode koji imaju isti popust,
  90.  SELECT ProductID as "ID proizvoda", ROUND(SUM(OrderQty*UnitPrice),2) as "Bez popusta: ",
  91.         ROUND(SUM((OrderQty*UnitPrice)-(OrderQty*UnitPrice*UnitPriceDiscount)),3) as "Sa popustom: ",
  92.         UnitPriceDiscount as Popust
  93.  FROM Sales.SalesOrderDetail
  94.  WHERE UnitPriceDiscount>0
  95.  GROUP BY ProductID, UnitPriceDiscount
  96.  ORDER BY "Bez popusta: " desc
  97.  
  98.  /*7. Prikazati broj narudžbe, datum narudžbe i datum isporuke za narudžbe koje su isporučene u
  99. Kanadu u 7. mjesecu 2014. godine. Uzeti u obzir samo narudžbe koje nisu plaćene kreditnom
  100. karticom. Datume formatirati u sljedećem obliku: dd.mm.yyyy*/
  101.  
  102. --7
  103.  
  104. SELECT SalesOrderID AS 'Broj narudžbe',
  105.        CONVERT(nvarchar(10),OrderDate,104) AS 'Datum narudžbe',
  106.        CONVERT(nvarchar(10),DueDate,104) AS 'Datum isporuke'
  107. FROM Sales.SalesOrderHeader
  108. WHERE TerritoryID = 6 AND MONTH(DueDate) ='7' AND YEAR(DueDate) = '2014' AND CreditCardID IS NULL
  109.  
  110. /*8. Kreirati upit koji prikazuje minimalnu, maksimalnu, prosječnu te ukupnu zaradu po
  111. mjesecima u 2013. godini.*/
  112.  
  113. --8
  114.  
  115. SELECT MONTH(DueDate) AS 'MONTH',
  116. MIN(LineTotal) AS 'MINIMUM',
  117. MAX(LineTotal) AS 'MAXIMUM',
  118. AVG(LineTotal) AS 'AVERAGE',
  119. SUM(LineTotal) AS 'TOTAL'
  120. FROM Purchasing.PurchaseOrderDetail
  121. WHERE YEAR(DueDate)='2013'
  122. GROUP BY MONTH(DueDate)
  123. ORDER BY MONTH(DueDate) ASC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement