uraharadono

Vježba 7

Sep 6th, 2015
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --UPITI – Vježba 7
  2. --NAPOMENA: Sve primjere riješiti koristeći podupite.
  3. --1. Koristeći bazu podataka Northwind napisati upit koji prikazuje listu proizvoda i najveću količinu narudžbe za svaki proizvod.
  4. USE Northwind
  5. SELECT ProductName,
  6. (SELECT MAX(Quantity)
  7. FROM [dbo].[Order Details]
  8. WHERE [dbo].[Order Details].ProductID=[dbo].[Products].ProductID) AS "Najveca kolicina narudzbe"
  9. FROM [dbo].[Products]
  10.  
  11. --2. Koristeći bazu podataka Northwind prikazati ime kompanije kupca, ali samo onih koji su utrošili više od 10 000.
  12. USE Northwind
  13. SELECT [CompanyName]
  14. FROM [dbo].[Customers]
  15. WHERE 10000<
  16. (SELECT SUM(Quantity*UnitPrice)
  17. FROM [dbo].[Order Details]
  18. WHERE [dbo].[Customers].CustomerID=
  19. (SELECT CustomerID
  20. FROM [dbo].[Orders]
  21. WHERE OrderID=[dbo].[Order Details].OrderID))
  22.  
  23.  
  24. --3. Koristeći bazu podataka Northwind prikazati vremensku razliku između pojedinih narudžbi i zadnje obavljene naružbe (razliku prikazati u danima).
  25. --   Obavezni format datuma u prikazu: 08.05.2013.
  26. USE Northwind
  27. SELECT CONVERT(VARCHAR(10),OrderDate,104) AS 'Narudzba', CONVERT(VARCHAR(10),(SELECT MAX([OrderDate])FROM [dbo].[Orders]),104)AS 'Zadnja narudzba',
  28. DATEDIFF(DAY, OrderDate,(SELECT MAX([OrderDate])FROM [dbo].[Orders]))AS 'razlika u danima'
  29. FROM [dbo].[Orders]
  30.  
  31. --4. Koristeći bazu podataka AdventureWorks2012 prikazati četvrtu najveću platu u preduzeću (po visini primanja). Tabela EmployeePayHistory.
  32. USE [AdventureWorks2012]
  33. SELECT TOP 1 Rate AS '4. Najveca plata'
  34. FROM [HumanResources].[EmployeePayHistory]
  35. WHERE Rate IN
  36. (SELECT TOP 4 Rate
  37. FROM [HumanResources].[EmployeePayHistory]
  38. ORDER BY Rate DESC)
  39. ORDER BY Rate ASC
  40.  
  41.  
  42. --5. Koristeći bazu podataka AdwentureWorks2012, kreirati upit koji treba da prikaže ukupnu količinu utrošenog novca za kupce. Izlaz treba da sadrži sljedeće kolone:
  43. --   ime i prezime kupca, tip kreditne kartice, broj kartice i ukupno utrošeno. Pri tome voditi računa da izlaz sadrži:
  44. --a)    Samo troškove koje su kupci napravili koristeći kredite kartice,
  45. --b)    Samo one kupce koji imaju više od jedne kartice,
  46. --c)    Prikazati i one kartice sa kojima kupac nije obavljao narudžbe,
  47. --d)    Ukoliko vrijedost kolone utrošeno bude nepoznata, zamijeniti je brojem 0 (nula),
  48. --e)    Izlaz treba biti sortiran po prezimenu kupca abecedno i količini utrošenog novca opadajućim redoslijedom.
  49. --Tabele: Customer, Person, PersonCreditCard, CreditCard, SalesOrderHeader, SalesOrderDetail
  50. --Napomena: Zadatak 5 je bonus zadatak. Za ispravan prikaz rezultata potrebno je izvršiti skriptu u prilogu (AWCreditCards.sql).
  51. USE [AdventureWorks2012]
  52. SELECT
  53. (SELECT [FirstName]+' '+[LastName]
  54. FROM [Person].[Person] AS PP
  55. WHERE [BusinessEntityID]=PCD.BusinessEntityID
  56. --GROUP BY FirstName,LastName
  57. )AS 'Ime i prezime kupca',
  58. (SELECT [CardType]
  59. FROM [Sales].[CreditCard] AS CC
  60. WHERE CC.[CreditCardID]=PCD.CreditCardID)AS 'Tip kreditne kartice',
  61. (SELECT [CardNumber]
  62. FROM [Sales].[CreditCard] AS CC
  63. WHERE CC.[CreditCardID]=PCD.CreditCardID)AS 'Broj kreditne kartice',
  64. ISNULL((SELECT SUM([OrderQty]*[UnitPrice])--d)  Ukoliko vrijedost kolone utrošeno bude nepoznata, zamijeniti je brojem 0 (nula)
  65. FROM [Sales].[SalesOrderDetail] AS SOD
  66. WHERE SOD.SalesOrderID=
  67. (SELECT TOP 1 [SalesOrderID]
  68. FROM [Sales].[SalesOrderHeader] AS SOH
  69. WHERE SOH.CreditCardID=PCD.CreditCardID AND
  70. (SOH.CreditCardID IS NOT NULL))),0) AS 'Ukupno utroseno' --a)   Samo troškove koje su kupci napravili koristeći kredite kartice,
  71. FROM [Sales].[PersonCreditCard] AS PCD
  72. GROUP BY BusinessEntityID, CreditCardID
  73. --HAVING COUNT(PCD.CreditCardID)>1 --b) Samo one kupce koji imaju više od jedne kartice [NE RADI]
  74. ORDER BY (SELECT [LastName]
  75. FROM [Person].[Person] AS PP
  76. WHERE [BusinessEntityID]=PCD.BusinessEntityID) ASC, 4 DESC --e) Izlaz treba biti sortiran po prezimenu kupca abecedno i količini utrošenog novca opadajućim redoslijedom.
Add Comment
Please, Sign In to add comment