SHOW:
|
|
- or go back to the newest paste.
| 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. |