uraharadono

Sve vjezbe prva parcijala

Sep 6th, 2015
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --UPITI::Northwind
  2.  
  3. --1.  Prikazati listu zaposlenika sa sljedećim atributima: ID, ime, prezime i titulu, gdje je ID = 9 ili dolaze iz USA.
  4. USE Northwind
  5. SELECT EmployeeID, FirstName, LastName, Title
  6. FROM Employees
  7. WHERE EmployeeID=9 OR Country='USA'
  8.  
  9. --2.  Prikazati podatke o narudžbama koje su napravljene prije 19.07.1996. godine. Izlaz treba da sadrži sljedeće kolone: broj narudžbe, datum narudžbe, id kupca, te grad.
  10. USE Northwind
  11. SELECT OrderID 'Broj narudzbe', OrderDate 'Datum narudzbe', CustomerID, ShipCity
  12. FROM Orders
  13. WHERE ShippedDate < '19960719'
  14. --3. Prikazati ime kompanije kupca i kontakt telefon i to samo onih koji u svome imenu posjeduju riječ „Restaurant“. Ukoliko naziv kompanije sadrži karakter (-), kupce izbaciti iz rezultata upita.
  15. USE Northwind
  16. SELECT CompanyName, Phone
  17. FROM Customers
  18. WHERE CompanyName LIKE '%restaurant%' AND CompanyName NOT LIKE '%-%'
  19.  
  20. --4. Prikazati listu proizvoda čiji naziv počinje slovima „S“ ili  „T“, ili je ID proizvoda = 46. Također, lista treba da sadrži one proizvode čija je se cijena po komadu kreće između 10 i 50. Upit napisati na dva načina.
  21. USE Northwind
  22. SELECT ProductID, ProductName
  23. FROM Products
  24. WHERE (ProductName LIKE '[st]%' OR ProductID=46) AND UnitPrice BETWEEN 10 and 50
  25.  
  26. USE Northwind
  27. SELECT ProductID, ProductName
  28. FROM Products
  29. WHERE (ProductName LIKE 's%' OR ProductName LIKE 't%' OR ProductID=46) AND UnitPrice BETWEEN 10 and 50
  30.  
  31. --5. Prikazati dobavljače koji dolaze iz Španije ili Njemačke a nemaju unesen broj faxa. Formatirati izlaz NULL vrijednosti. Upit napisati na dva načina.
  32. USE Northwind
  33. SELECT SupplierID, CompanyName, Country, ISNULL(Fax,0)
  34. FROM Suppliers
  35. WHERE Country IN ('Spain','Germany') AND Fax IS NULL
  36.  
  37. USE Northwind
  38. SELECT SupplierID, CompanyName, Country, ISNULL(Fax,0)
  39. FROM Suppliers
  40. WHERE (Country LIKE 'Spain' OR Country LIKE 'Germany') AND Fax IS NULL
  41.  
  42. --6. Prikazati naziv proizvoda i cijenu gdje je stanje na zalihama manje od naručene količine. Također, u rezultate upita uključiti razliku između naručene količine i stanja zaliha.
  43. USE Northwind
  44. SELECT ProductName, UnitPrice, (UnitsOnOrder-UnitsInStock) 'Razlika UOO-UIS'
  45. FROM Products
  46. WHERE UnitsInStock<UnitsOnOrder
  47.  
  48. --7. Prikazati stavke narudžbe (sve kolone) gdje je količina narudžbe bila veća od 100 komada uz odobreni popust.
  49. USE Northwind
  50. SELECT *
  51. FROM [Order Details]
  52. WHERE Quantity > 100 AND Discount>0
  53.  
  54. --8. Prikazati proizvode čiji naziv ne počinje slovima „S“ ili „L“, drugo slovo je nepoznato, a treće slovo u nazivu je „A“ ili „C“. Koristiti wildcard karaktere.
  55. USE Northwind
  56. SELECT ProductName
  57. FROM Products
  58. WHERE ProductName LIKE '[^sl]_[ac]%'
  59.  
  60.  
  61. --UPITI:Pubs
  62. --1. Prikazati listu autora sa sljedećim kolonama: ID, ime i prezime (spojeno), grad i to samo one autore čiji ID počinje brojem 8 ili dolaze iz grada „Salt Lake City“. Također autorima status ugovora treba biti 1. Koristiti aliase nad kolonama.
  63. USE pubs
  64. SELECT au_id 'ID', au_fname + ' ' + au_lname 'Ime i Prezime', city 'Grad'
  65. FROM authors
  66. WHERE (au_id LIKE '8%' OR city='Salt Lake City') AND contract=1
  67.  
  68. --2. Prikazati sve tipove knjiga bez duplikata. Listu sortirati po tipu.
  69. USE pubs
  70. SELECT DISTINCT type
  71. FROM titles
  72. ORDER BY type
  73.  
  74. --3. Prikazati listu prodaje knjiga sa sljedećim kolonama: ID prodavnice, broj narudžbe i količinu, ali samo gdje je količina između 10 i 50, uključujući i granične vrijednosti. Rezultat upita sortirati po količini opadajućim redoslijedom. Upit napisati na dva načina.
  75. USE pubs
  76. SELECT stor_id, ord_num, qty
  77. FROM sales
  78. WHERE qty BETWEEN 10 AND 50
  79. ORDER BY qty DESC
  80.  
  81. --4. Prikazati listu knjiga sa sljedećim kolonama: naslov, tip djela i cijenu. Kao novu kolonu dodati 20% od prikazane cijene (npr. Ako je cijena 19.99 u novoj koloni treba da piše 3,998). Naziv kolone se treba zvati „20% od cijene“. Listu sortirati abecedno po tipu djela i po cijeni opadajućim redoslijedom. Sa liste eliminisati one vrijednosti koje u polju cijena imaju nepoznatu vrijednost. Modifikovati upit tako da prikaže cijenu umanjenu za 20 %. Naziv kolone treba da se zove „Cijena umanjena za 20%“.
  82. USE pubs
  83. SELECT title, type, price, (price*0.2) '20% od cijene'
  84. FROM titles
  85. WHERE price IS NOT NULL
  86. ORDER BY type, price DESC
  87.  
  88. --5. Prikazati 10 količinski najvećih stavki prodaje. Lista treba da sadrži broj narudžbe, datum narudžbe i količinu. Provjeriti da li ima više stavki sa količinom kao posljednja u listi.
  89. USE pubs
  90. SELECT TOP(10) WITH TIES ord_num, ord_date, qty
  91. FROM sales
  92. ORDER BY qty DESC
  93.  
  94.  
  95. --UPITI::AdvetureWorksLT
  96. --1. Kreirati poruku dobrodošlice za kupce u sljedećem formatu: Dobrodošli Ime + Prezime, trenutno vrijeme je 11:20. Upit raditi na dva načina, koristeći funkcije za rad sa stringovima i datumima.
  97. USE AdventureWorksLT2012
  98. SELECT 'Dobro dosli '+FirstName+' '+ LastName+', trenutno vrijeme je '+SUBSTRING(CONVERT(CHAR,SYSDATETIME()),12,5) 'Welcome'
  99. FROM SalesLT.Customer
  100.  
  101. USE AdventureWorksLT2012
  102. SELECT 'Dobro dosli '+FirstName+' '+ LastName+', trenutno vrijeme je '+SUBSTRING(CAST(SYSDATETIME() AS NVARCHAR),12,5) 'Welcome'
  103. FROM SalesLT.Customer
  104.  
  105. --2. Kreirati korisničke podatke za kupce: korisničko ime i lozinku. Korisničko ime kreirati koristeći mail adresu (sve do znaka @), a lozinku koristeći kolonu PasswordHash (preskočiti prvih 5 karaktera i uzeti narednih 8, te ukoliko se pojavljuje karakter '+', zamijeniti ga sa '#'). Korisničke podatke kreirati samo za kupce koji imaju unesenu titulu a titula je 'Mr.'
  106. USE AdventureWorksLT2012
  107. SELECT LEFT(EmailAddress, CHARINDEX('@', EmailAddress)-1)'Ime', REPLACE(LEFT(RIGHT(PasswordHash, LEN(PasswordHash)-5),8),'+','#')'Lozinka' 
  108. FROM SalesLT.Customer
  109. WHERE title LIKE 'Mr.'
  110.  
  111. --3. Prikazati početak i kraj prodaje proizvoda, također, u listu uključiti i ukupno trajanje prodaje u mjesecima. Uslovi su: da je kraj prodaje proizvoda unesen i da naziv proizvoda počinje sa L ili M, a završava sa L.
  112. USE AdventureWorksLT2012
  113. SELECT SellStartDate, SellEndDate, MONTH(SellEndDate-SellStartDate)'Trajanje prodaje u mjesecima'
  114. FROM SalesLT.Product
  115. WHERE SellEndDate IS NOT NULL AND Name LIKE '[LM]%L'
  116.  
  117. --4. Prikazati broj narudžbe, broj dana do isporuke, ukupan iznos i način dostave. Kolonu način dostave ispisati malim slovima s tim da je početno slovo veliko. Ukupan iznos narudžbe treba biti između 200 i 1000.
  118. USE AdventureWorksLT2012
  119. SELECT SalesOrderNumber, DAY(ShipDate-OrderDate)'Do isporuke(dana)', TotalDue 'Ukupan iznos', LEFT(ShipMethod,1)+SUBSTRING(LOWER(shipmethod),2,20)
  120. FROM SalesLT.SalesOrderHeader
  121. WHERE TotalDue BETWEEN 200 AND 1000
  122.  
  123. -- 5. Prikazati 10 najskupljih stavki narudžbe (ID stavke, cijena, količina, ukupno). Kolonu ukupno (izračunata kolona) zaokružiti na preciznost od dvije decimale. Također, potrebno je formatirati izlaz kolona cijena, količina i ukupno. Koristiti sljedeće formate: Cijena: 100.20 KM; Količina: 3 kom.; Ukupno: 300.60 KM.
  124. USE AdventureWorksLT2012
  125. SELECT TOP(10) SalesOrderID,CONVERT(nvarchar,unitprice) +' KM' 'Cijena',CONVERT(nvarchar,OrderQty)+' kom.' 'Kolicina', ROUND((UnitPrice*OrderQty),2)'Ukupno'
  126. FROM SalesLT.SalesOrderDetail
  127. ORDER BY Ukupno DESC
  128.  
  129.  
  130. -- Upiti :: AdventureWorks2012
  131.  
  132. -- 1. Kreirati upit koji prikazuje korisničko ime zaposlenika (Sve iza znaka „\“, kolona LoginID), starost i godine staža.
  133. -- Uslovi su da zaposlenik ima više od 50 godina, više od 10 godina staža i da je ženskog spola. Listu sortirati po godinama staža opadajućim redoslijedom.
  134. USE AdventureWorks2012
  135. SELECT SUBSTRING(LoginID,CHARINDEX('\',LoginID)+1,30)'Korisnicko ime', DATEDIFF(YEAR,BirthDate,GETDATE()) 'Starost', DATEDIFF(YEAR,HireDate,GETDATE()) 'Godine staza'
  136. FROM HumanResources.Employee
  137. WHERE DATEDIFF(YEAR,BirthDate,GETDATE())>50 AND DATEDIFF(YEAR,HireDate,GETDATE())>10 AND [Gender] = 'F'
  138. ORDER BY [Godine staza] DESC
  139.  
  140. --2. Prikazati minimalnu, maksimalnu i prosječnu cijenu proizvoda ali samo onih gdje je cijena (ListPrice) veća od 0. Koristiti aliase.
  141. USE AdventureWorks2012
  142. SELECT ProductModelID, AVG(ListPrice)'Srednja', MIN(ListPrice)'Minimalna',MAX(ListPrice)'Maximalna'
  143. FROM Production.Product
  144. WHERE ListPrice > 0
  145. GROUP BY ProductModelID
  146.  
  147. --3. Prikazati ukupan broj proizvoda po modelu (ProductModel9. Lista treba da sadrži ID modela proizvoda i ukupan broj proizvoda. Uslov je da proizvod pripada nekom modelu i da je ukupan broj proizvoda veći od 1.
  148. USE AdventureWorks2012
  149. SELECT ProductModelID, COUNT(ProductModelID)'Ukupan broj proizvoda'
  150. FROM Production.Product
  151. WHERE ProductModelID IS NOT NULL
  152. GROUP BY ProductModelID
  153. HAVING COUNT(ProductModelID) > 1
  154.  
  155. --4. Kreirati upit koji prikazuje 10 najprodavanijih proizvoda. Lista treba da sadrži ID proizvoda i ukupnu količinu prodaje. Provjeriti da li ima proizvoda sa istom količinom prodaje kao zapis pod rednim brojem 10?
  156. SELECT TOP 10 WITH TIES ProductID, SUM(OrderQty)'Ukupna kolicina prodaje'
  157. FROM Sales.SalesOrderDetail
  158. GROUP BY ProductID
  159. ORDER BY SUM(OrderQty) DESC
  160.  
  161. --5. Kreirati upit koji prikazuje zaradu od prodaje proizvoda. Lista treba da sadrži ID proizvoda, ukupnu zaradu bez popusta, te ukupnu zaradu sa popustom. Iznos zarade zaokružiti na dvije decimale. Uslov je da se prikaže zarada samo za stavke gdje je bilo popusta. Listu sortirati po zaradi opadajućim redoslijedom.
  162. SELECT ProductID, ROUND(UnitPrice,2) 'Ukupna zarada bez popusta', ROUND(UnitPrice - UnitPriceDiscount,2) 'Zarda sa popustom'
  163. FROM Sales.SalesOrderDetail
  164. WHERE UnitPriceDiscount>0
  165. ORDER BY 2 DESC
  166.  
  167.  
  168. --Upiti::Northwind
  169. --1. Kreirati upit koji prikazuje broj proizvoda po kategoriji te ukupnu količinu na zalihama. Uslov je da stanje na zalihama između 300 i 500. Sortirati po broju proizvoda u kategoriji opadajućim redoslijedom.
  170. USE Northwind
  171. SELECT CategoryID, SUM(UnitsInStock)
  172. FROM Products
  173. GROUP BY CategoryID
  174. HAVING SUM(UnitsInStock)>300 AND SUM(UnitsInStock)<500
  175. ORDER BY 2 DESC
  176.  
  177. --2. Prikazati naziv proizvoda i ukupnu zaradu od prodaje. Uslov je da naziv proizvoda počinje slovom 'S' i da je zarada veća od 10.000. Sortirati po zaradi opadajućim redoslijedom. Koristiti JOIN operator.
  178. USE Northwind
  179. SELECT ProductName, OD.UnitPrice *OD.Quantity
  180. FROM Products AS P JOIN [Order Details] AS OD ON P.ProductID=OD.ProductID
  181. WHERE ProductName LIKE '[S]%' AND OD.UnitPrice *OD.Quantity>1000
  182.  
  183. --3. Deklarisati poruku u formatu:
  184. --Poštovani, želimo Vam sretnu i uspješnu novu godinu!
  185. --Nakon toga, u tekst ubaciti naziv dobavljača kojem se šalje poruka i to prije zareza u formatu:
  186. --Poštovani NEKI DOBAVLJAČ, želimo...
  187. USE Northwind
  188. SELECT 'Postovani ' +ContactName + ', želimo Vam sretnu i uspješnu novu godinu!' AS 'poruka'
  189. FROM Suppliers
  190.  
  191. --4. Kompanija je odlučila da svojim zaposlenicima dodjeli mail adrese. Za tu svrhu će se iskoristiti postojeće podatke iz baze podataka. Izlaz treba biti u formatu tri nove kolone: Email, Lozinka i Starost. Uslovi su sljedeći:
  192. --  Email se formira od podataka u kolonama: LastName, FirstName, City i to sljedećem formatu: LastName.Firstname@City.Com (sve malim slovima),
  193. --  Lozinka se formira od podataka iz kolona: Notes, Title i Address na sljedeći način: Spajanjam kolona (Notes, Title i Address). Sljedeći korak jeste da se sadržaj spajanja okrene obrnuto (npr. dbms2013 – 3102smbd). Nakon toga, iz dobivenog stringa, preskačemo prvih 20 karaktera i uzimamo sljedećih 8. Na pojedinim mjestma će se pojaviti razmak,  isti je potrebno zamjeniti sa znakom #,
  194. --  Starost se formira na osnovu kolone BirthDate i trenutnog datuma.
  195. --Mail, lozinka i godine starosti se generišu samo za one klijente koji imaju unesenu adresu.
  196. USE Northwind
  197. SELECT LastName + '.' + FirstName + '@' + City + '.com' AS 'Email', REPLACE(SUBSTRING(REVERSE(CONVERT(nvarchar,Notes)+CONVERT(nvarchar,Title)+Address), 20, 8),' ','#') AS 'Lozinka', DATEDIFF(YEAR,BirthDate,GETDATE()) 'Starost'
  198. FROM Employees
  199. WHERE Address IS NOT NULL
  200.  
  201. --5. Vaša kompanija želi saznati koji su to zaposlenici rođeni u 7 mjesecu bilo koje godine s ciljem slanja čestitki i odgovarajućuih poklona. Vaš zadatak je da kreirate listu zaposlenika sa:
  202. --  imenom, prezimenom, brojem telefona i datumom rođenja,
  203. --  kreirati kolonu koja sadrži podatak o ukupnom broju dana zaposlenja radnika u Vašoj kompaniji,
  204. --  uslov je da su traženi zaposlenici imaju više od 7000 dana staža.
  205. USE Northwind
  206. SELECT FirstName'Ime',LastName'Prezime',HomePhone'Broj tel.',BirthDate'Datum rodjenja',DATEDIFF(DAY,HireDate,GETDATE())'Broj dana zaposlen'
  207. FROM Employees
  208. WHERE DATEDIFF(DAY,HireDate,GETDATE()) > 7000
  209.  
  210.  
  211. --UPITI – Vježba 6
  212.  
  213. --1. Iz baze podataka Pubs prikazati spojeno ime i prezime autora sa ukupnim brojem objavljenih djela. Izlaz sortirati abecedno po prezimenu.
  214. USE pubs
  215. SELECT au_fname+' '+au_lname+' ima ' AS 'Ime',  COUNT(title_id) AS 'Ukupno objavljenih djela'
  216. FROM authors AS A JOIN titleauthor AS TA ON A.au_id=TA.au_id
  217. GROUP BY au_fname, au_lname
  218.  
  219. --2. Koristeći tabele CountryRegion, StateProvince i Address iz baze podataka AdwentureWorks, kreirati izvještaj  koji za svaku državu prikazuje sve njene regione i za svaki region ukupan broj osoba.
  220. USE AdventureWorks2012
  221. SELECT PC.Name'Drzava', PS.Name'Region', COUNT(PA.AddressID)'Broj osoba'
  222. FROM [Person].[CountryRegion] AS PC JOIN [Person].[StateProvince] AS PS ON PC.CountryRegionCode=PS.CountryRegionCode JOIN [Person].[Address] AS PA ON PS.StateProvinceID=PA.StateProvinceID
  223. GROUP BY PC.Name,PS.Name
  224.  
  225. --3. Iz baze podataka Northwind prikazati listu proizvoda sa cijenom po komadu. Također, izlaz treba da sadrži broj proizvoda na zalihama te koliko je komada prodano. Prikazati samo proizvode kojih nema na zalihama.
  226. USE Northwind
  227. SELECT ProductName 'Proizvod', UnitPrice'Cijena po komadu', UnitsInStock 'Zalihe',UnitsOnOrder'Prodano'
  228. FROM Products
  229. WHERE UnitsInStock = 0
  230.  
  231. --4. Iz baze podataka Northwind prikazati ime i prezime zaposlenika (spojeno) te količinu novca koju su zaradili u 7 mjesecu 1997. godine.
  232. USE Northwind
  233. SELECT E.FirstName+' '+E.LastName AS 'Ime', SUM(O.Freight)AS'Ukupna zarada'
  234. FROM Employees AS E JOIN Orders AS O ON E.EmployeeID=O.EmployeeID JOIN [Order Details] AS OE ON O.OrderID=OE.OrderID
  235. WHERE DATEPART(MONTH,O.OrderDate)=7 AND DATEPART(YEAR,O.OrderDate)=1997
  236. GROUP BY E.FirstName,E.LastName
  237.  
  238. --5. Kreirati upit koji će prikazati naziv modela proizvoda i opis modela proizvoda (AdventureWorksLT). Uslovi koji se trebaju zadovoljiti su:
  239. --a)    Naziv modela sadrži riječ „Mountain“, i
  240. --b)    Godina izmjene modela je 2001 (koristiti funkciju), i
  241. --c)    Opis mora biti na engleskom jeziku.
  242.  
  243. USE AdventureWorksLT2012
  244. SELECT PM.Name'Naziv modela', PD.Description'Opis modela'
  245. FROM SalesLT.Product AS P JOIN SalesLT.ProductModel AS PM ON P.ProductModelID=PM.ProductModelID JOIN SalesLT.ProductModelProductDescription AS PMPD ON PM.ProductModelID=PMPD.ProductModelID JOIN SalesLT.ProductDescription AS PD ON PMPD.ProductDescriptionID=PD.ProductDescriptionID
  246. WHERE PM.Name LIKE '%Mountain%' AND YEAR(P.SellStartDate)=2001 AND PMPD.Culture LIKE 'en%'
  247.  
  248.  
  249. --UPITI – Priprema za prvi parcijalni ispit
  250.  
  251. --1. (Northwind) Prikazati ime i prezime zaposlenika (spojeno) sa ukupnim broj narudžbi koje je uradio. Listu sortirati od zaposlenika sa najvećim brojem urađenih narudžbi.
  252.  USE Northwind
  253.  SELECT FirstName+' '+LastName AS 'Ime', COUNT (O.OrderID)'Narudzbe'
  254.  FROM Employees AS E JOIN Orders AS O ON E.EmployeeID=O.EmployeeID
  255.  GROUP BY FirstName,LastName
  256.  ORDER BY COUNT (O.OrderID) DESC
  257.  
  258. --Modifikovati prethodni upit tako da se prikaže ukupan broj narudžbi koje su zaposlenici uradili u 7 mjesecu 1997. godine. Prikazati samo one zaposlenike koji su uradili 5 ili više narudžbi.
  259.  USE Northwind
  260.  SELECT FirstName+' '+LastName AS 'Ime', COUNT (O.OrderID)'Narudzbe'
  261.  FROM Employees AS E JOIN Orders AS O ON E.EmployeeID=O.EmployeeID
  262.  WHERE DATEPART(YEAR,OrderDate)=1997 AND DATEPART (MONTH, OrderDate)=7
  263.  GROUP BY FirstName,LastName
  264.  HAVING COUNT (O.OrderID)>=5
  265.  ORDER BY COUNT (O.OrderID) DESC
  266.  
  267.  
  268. --2. (Northwind) Kreirati izvještaj koji za svakog kupca prikazuje: ime kompanije spojeno sa imenom grada i države u sljedećem formatu  npr. Ernst Handel, (Graz Austria). U prikaz uključiti i zagrade. Također, izlaz treba da sadrži ukupnu količinu naručenih proizvoda. Uslovi su da izvještaj prikaže:
  269. --  One kupce kod kojih spojen string iz postavke zadataka (Ernst Handel, (Graz Austria)  - nema riječ Germany
  270. --  Imaju unesen podatak o poštanskom broju
  271. --  Uslov je da izvještaj obuhvati one kupce gdje ukupna količina naručenih proizvoda preko 1000
  272. USE Northwind
  273. SELECT CompanyName +', (Grad '+ City+', Drzava '+ Country+')'AS 'Ime', SUM(OO.Quantity)'Narudzbe'
  274. FROM Customers AS C JOIN Orders AS O ON C.CustomerID=O.CustomerID JOIN [Order Details] AS OO ON O.OrderID=OO.OrderID
  275. WHERE Country NOT LIKE 'Germany' AND PostalCode IS NOT NULL
  276. GROUP BY CompanyName,City,Country
  277. HAVING SUM(OO.Quantity)>1000
  278.  
  279. --3. (AdventureWorksLT) Vaša firma želi da sazna neke informacije o svojim kupcima. Svake godine se analizira drugi region. Ove godine je došao red na kupce iz United States.
  280. --  Izlaz treba da sadrži: ime i prezime kupca, ukupan broj narudžbi za prikazanog kupca, ukupnu količinu svih kupljenih proizvoda, region i grad iz kojeg dolazi kupac. Uslovi su:
  281. --  Pored onih kupaca koji su nešto kupili, lista treba da sadrži i one koji nisu uradili niti jednu narudžbu
  282. --  Ukoliko u izlazu postoji kolona sa NULL vrijednosti istu je potrebno zamijeniti brojem 0
  283. --  Pored toga što se traže kupci iz US, na listu je potrebno dodati i one koji dolaze iz grada „Montreal“
  284. USE AdventureWorksLT2012
  285. SELECT FirstName+' '+LastName, COUNT(P.ProductID)'Broj narudzbi' , SUM(ISNULL(SOD.OrderQty,0))'Ukupna kolicina svih kupljenih proizvoda' , CountryRegion+', '+City
  286. FROM SalesLT.Customer AS C
  287. LEFT JOIN SalesLT.SalesOrderHeader AS SOH ON C.CustomerID=SOH.CustomerID
  288. LEFT JOIN SalesLT.SalesOrderDetail AS SOD ON SOH.SalesOrderID=SOD.SalesOrderID
  289. LEFT JOIN SalesLT.Product AS P ON SOD.ProductID=P.ProductID
  290. JOIN SalesLT.CustomerAddress AS CA ON C.CustomerID=CA.CustomerID
  291. JOIN SalesLT.Address AS A ON CA.AddressID=A.AddressID
  292. WHERE CountryRegion='United States' OR City='Montreal'
  293. GROUP BY FirstName,LastName,CountryRegion,City
  294.  
  295. --4. (AdventureWorks) Prikazati 10 najprodavanijih proizvoda (najveća količina prodaje) i zaradu od prodaje.
  296. -- Također, u listu uključiti jedinicu mjere (Size) u kojoj se proizvod prodaje.
  297. USE AdventureWorks2012
  298. SELECT TOP 10 P.Name, SUM (SOD.OrderQty)'Kolicina prodaje', SUM(SOD.UnitPrice)'Zarada', ISNULL(P.Size,'N/A') 'size'
  299. FROM Production.Product AS P
  300. JOIN Sales.SalesOrderDetail AS SOD ON P.ProductID=SOD.ProductID
  301. GROUP BY P.Name, P.Size
  302. ORDER BY 2 DESC
  303.  
  304. --5. (AdventureWorks) Za kupca sa imenom i prezimenom 'Jordan Green' prikazati tipove i brojeve kartica koje posjeduje,
  305. -- te narudžbe koje je uradio koristeći kartice (broj narudžbe, datum narudžbe).
  306. USE AdventureWorks2012
  307. SELECT P.FirstName+' '+P.LastName AS 'Ime', CC.CardType'Tip kartice', CC.CardNumber'Broj kartice', SalesOrderNumber'Broj narudzbe', OrderDate'Datum narudzbe'
  308. FROM Person.Person AS P
  309. JOIN Sales.PersonCreditCard AS PCC ON P.BusinessEntityID=PCC.BusinessEntityID
  310. JOIN Sales.CreditCard AS CC ON PCC.CreditCardID=CC.CreditCardID
  311. JOIN Sales.SalesOrderHeader AS SOH ON CC.CreditCardID=SOH.CreditCardID
  312. WHERE P.FirstName LIKE'Jordan' AND P.LastName LIKE'Green'
Add Comment
Please, Sign In to add comment