View difference between Paste ID: XSb8awGE and a3NNW0ym
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.