rijads

sql upiti

Mar 24th, 2014
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 7.10 KB | None | 0 0
  1. -- UPITI::Northwind
  2. -- 1.  Prikazati listu zaposlenika sa sljedećim atributima: ID, ime, prezime i titulu, gdje je ID = 9 ili dolaze iz USA.
  3. USE Northwind
  4. SELECT EmployeeID, FirstName, LastName, Title
  5. FROM Employees
  6. WHERE EmployeeID=9 OR Country='USA'
  7.  
  8. -- 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.
  9. USE Northwind
  10. SELECT OrderID 'Broj narudzbe', OrderDate 'Datum narudzbe', CustomerID, ShipCity
  11. FROM Orders
  12. WHERE ShippedDate < '19960719'
  13. -- 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.
  14. USE Northwind
  15. SELECT CompanyName, Phone
  16. FROM Customers
  17. WHERE CompanyName LIKE '%restaurant%' AND CompanyName NOT LIKE '%-%'
  18.  
  19. -- 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.
  20. USE Northwind
  21. SELECT ProductID, ProductName
  22. FROM Products
  23. WHERE (ProductName LIKE '[st]%' OR ProductID=46) AND UnitPrice BETWEEN 10 and 50
  24.  
  25. USE Northwind
  26. SELECT ProductID, ProductName
  27. FROM Products
  28. WHERE (ProductName LIKE 's%' OR ProductName LIKE 't%' OR ProductID=46) AND UnitPrice BETWEEN 10 and 50
  29.  
  30. --? 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.
  31. USE Northwind
  32. SELECT SupplierID, CompanyName, Country, Fax
  33. FROM Suppliers
  34. WHERE Country IN ('Spain','Germany') AND Fax IS NULL
  35.  
  36. USE Northwind
  37. SELECT SupplierID, CompanyName, Country, Fax
  38. FROM Suppliers
  39. WHERE (Country LIKE 'Spain' OR Country LIKE 'Germany') AND Fax IS NULL
  40.  
  41. -- 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.
  42. USE Northwind
  43. SELECT ProductName, UnitPrice, (UnitsOnOrder-UnitsInStock) 'Razlika UOO-UIS'
  44. FROM Products
  45. WHERE UnitsInStock<UnitsOnOrder
  46.  
  47. -- 7. Prikazati stavke narudžbe (sve kolone) gdje je količina narudžbe bila veća od 100 komada uz odobreni popust.
  48. USE Northwind
  49. SELECT *
  50. FROM [Order Details]
  51. WHERE Quantity > 100 AND Discount>0
  52.  
  53. -- 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.
  54. USE Northwind
  55. SELECT ProductName
  56. FROM Products
  57. WHERE ProductName LIKE '[^sl]_[ac]%'
  58.  
  59.  
  60. -- UPITI:Pubs
  61. -- 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.
  62. USE pubs
  63. SELECT au_id 'ID', au_fname + ' ' + au_lname 'Ime i Prezime', city 'Grad'
  64. FROM authors
  65. WHERE (au_id LIKE '8%' OR city='Salt Lake City') AND contract=1
  66.  
  67. -- 2. Prikazati sve tipove knjiga bez duplikata. Listu sortirati po tipu.
  68. USE pubs
  69. SELECT DISTINCT type
  70. FROM titles
  71. ORDER BY type
  72.  
  73. -- 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.
  74. USE pubs
  75. SELECT stor_id, ord_num, qty
  76. FROM sales
  77. WHERE qty BETWEEN 10 AND 50
  78. ORDER BY qty DESC
  79.  
  80. -- 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%“.
  81. USE pubs
  82. SELECT title, type, price, (price*0.2) '20% od cijene'
  83. FROM titles
  84. WHERE price IS NOT NULL
  85. ORDER BY type, price DESC
  86.  
  87. --? 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.
  88. USE pubs
  89. SELECT TOP(10) ord_num, ord_date, qty
  90. FROM sales
  91. ORDER BY qty DESC
  92.  
  93. --UPITI::AdvetureWorksLT
  94. --? 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.
  95. USE AdventureWorksLT2012
  96. SELECT 'Dobro dosli '+FirstName+' '+ LastName+', trenutno vrijeme je '+SUBSTRING(CONVERT(CHAR,SYSDATETIME()),12,5) 'Welcome'
  97. FROM SalesLT.Customer
  98.  
  99. USE AdventureWorksLT2012
  100. SELECT 'Dobro dosli '+FirstName+' '+ LastName+', trenutno vrijeme je '+SUBSTRING(CAST(SYSDATETIME() AS NVARCHAR),12,5) 'Welcome'
  101. FROM SalesLT.Customer
  102.  
  103. -- 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.'
  104. USE AdventureWorksLT2012
  105. SELECT LEFT(EmailAddress, CHARINDEX('@', EmailAddress)-1)'Ime', REPLACE(LEFT(RIGHT(PasswordHash, LEN(PasswordHash)-5),8),'+','#')'Lozinka' 
  106. FROM SalesLT.Customer
  107. WHERE title LIKE 'Mr.'
  108.  
  109. -- 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.
  110. USE AdventureWorksLT2012
  111. SELECT SellStartDate, SellEndDate, MONTH(SellEndDate-SellStartDate)'Trajanje prodaje u mjesecima'
  112. FROM SalesLT.Product
  113. WHERE SellEndDate IS NOT NULL AND Name LIKE '[LM]%L'
  114.  
  115. -- 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.
  116. USE AdventureWorksLT2012
  117. SELECT SalesOrderNumber, DAY(ShipDate-OrderDate)'Do isporuke(dana)', TotalDue 'Ukupan iznos', LEFT(ShipMethod,1)+SUBSTRING(LOWER(shipmethod),2,20)
  118. FROM SalesLT.SalesOrderHeader
  119. WHERE TotalDue BETWEEN 200 AND 1000
  120.  
  121. -- 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.
  122. USE AdventureWorksLT2012
  123. SELECT TOP(10) SalesOrderID,CONVERT(nvarchar,unitprice) +' KM' 'Cijena',CONVERT(nvarchar,OrderQty)+' kom.' 'Kolicina', ROUND((UnitPrice*OrderQty),2)'Ukupno'
  124. FROM SalesLT.SalesOrderDetail
  125. ORDER BY Ukupno DESC
Advertisement
Add Comment
Please, Sign In to add comment