-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIP5Code.sql
151 lines (131 loc) · 4.77 KB
/
IP5Code.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
-- 1A) Write query using a subquery
use thehipp;
show tables;
#SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);
SELECT lastname, firstname
FROM customer
WHERE NOT EXISTS
(SELECT hippCode
FROM ticket
WHERE ticket.hippcode = customer.hippcode) ;
#1b join
select distinct
lastname, firstname
from customer
left outer join ticket
on ticket.hippcode = customer.hippcode
where ticket.hippcode is null;
#2venue
SELECT venue.venuename, venue.capacity,
ticket.price * count(ticket.datebought) AS TR,
COUNT(ticket.datebought) AS AmountSold
FROM event INNER JOIN ticket
ON ticket.eventcode = event.eventcode
INNER JOIN Venue ON venue.venueID = event.venueID
Where ticket.datebought is not null
GROUP BY venuename, capacity, baseticketprice;
#3
SELECT event.eventname,
ticket.price*COUNT(Ticket.datebought) AS 'Revenue',
event.promotioncost, event.screeningcost,
(ticket.price*COUNT(ticket.datebought) - promotioncost - screeningcost) AS 'Total Profit'
FROM Event INNER JOIN Ticket ON event.eventcode = ticket.eventcode
WHERE event.eventtype = 'M'
GROUP BY event.eventname, ticket.price, event.promotioncost, event.screeningcost
ORDER BY (ticket.price*COUNT(ticket.datebought) - promotioncost - screeningcost) DESC
LIMIT 5;
SELECT Event.EventName, Ticket.Price * COUNT(Ticket.DateBought) AS Revenue,
Event.PromotionCost, Event.ScreeningCost,
(Ticket.Price * COUNT(Ticket.DateBought) - PromotionCost - ScreeningCost) AS TotalProfit
FROM Event INNER JOIN Ticket ON Event.EventCode = Ticket.EventCode
WHERE Event.EventType = 'M'
GROUP BY Event.EventName, Ticket.Price, Event.PromotionCost, Event.ScreeningCost
ORDER BY (Ticket.Price * COUNT(Ticket.DateBought) - PromotionCost - ScreeningCost) DESC
LIMIT 5;
#4
SELECT EventName, Description, VenueID,
CASE
WHEN event.eventtype = 'M' THEN movie.genre
WHEN event.eventtype = 'P' THEN play.author
END AS 'GenreorAuthor'
FROM
Event LEFT JOIN Movie
ON event.eventcode = movie.eventCode
LEFT JOIN Play
ON event.eventcode = play.eventCode;
# new number 4
SELECT EventName, Description, VenueID, Genre AS 'Genre/Author'
FROM Event, Movie
WHERE Event.EventCode = Movie.EventCode
UNION ALL
SELECT EventName, Description, VenueID, Author AS 'Genre/Author'
FROM Event, Play
WHERE Event.EventCode = Play.EventCode;
# number 5 view
create or replace view ticketdetails as
select t.eventcode,
t.showdate,
t.showtime,
t.seat,
t.datebought,
t.hippcode,
t.price,
t.couponcode,
e.eventname,
e.description,
e.venueid,
e.eventtype,
e.BaseTicketPrice,
e.PromotionCost,
e.ProductionCost,
e.ScreeningCost
from ticket t, event e
where t.eventcode=e.eventcode;
#5a
select eventcode, eventname, count(eventcode) as numberofshows, screeningcost,
(count(eventcode) *screeningcost) as totalscreeningcost, promotioncost, productioncost,
((count(eventcode) *screeningcost) + promotioncost + productioncost) as totalcost,
sum(baseticketprice) as expectedrevenue, sum(price) as actualrevenue,
(sum(baseticketprice)-sum(price)) as totaldiscountsgiven,
((count(eventcode) *screeningcost) + promotioncost + productioncost)- sum(price) as profit
from ticketdetails
group by eventcode, eventname, screeningcost, promotioncost, productioncost;
SELECT EventCode, EventName, COUNT(EventCode) AS NumberOfShows, ScreeningCost,
(COUNT(EventCode) * ScreeningCost) AS TotalScreeningCost,
PromotionCost, ProductionCost,
((COUNT(EventCode) * ScreeningCost) + PromotionCost + ProductionCost) AS TotalCost,
SUM(BaseTicketPrice) AS ExpectedRevenue, SUM(Price) AS ActualRevenue,
(SUM(BaseTicketPrice) - SUM(Price)) AS TotalDiscountsGiven,
((Count(EventCode) * ScreeningCost) + PromotionCost + ProductionCost) - SUM(Price) AS Profit
FROM TicketDetails
GROUP BY EventCode, EventName, ScreeningCost, PromotionCost, ProductionCost;
SELECT HippCode, LastName, FirstName, Email,
COUNT(ShowDate.EventShow) AS TheaterTickets,
WHERE Ticket.EventCode = Movie.EventCode
FROM Event, Ticket;
WHERE (SELECT EventCode FROM Play
WHERE Play.EventCode = Cusotmer.HippCode)
SELECT HippCode, LastName, FirstName, Email
FROM Customer;
SELECT HippCode, LastName, FirstName, Email
COUNT(Play.EventCode) AS TheaterTickets
COUNT(Movie.EventCode) AS MovieTickets
FROM Customer, Event, Movie
WHERE Event.EventCode = Play.EventCode
UNION ALL
SELECT HippCode, LastName, FirstName, Email
COUNT(Play.EventCode) AS TheaterTickets
COUNT(Movie.EventCode) AS MovieTickets
FROM Customer, Event, Movie
WHERE Event.EventCode = Movie.EventCode
ON Play.EventCode = Movie.EventCode;
SELECT Customer.CustomerID, Orders.OrderDate
FROM Customer LEFT JOIN Orders
ON Customer.CustomerID = Orders.CustomerID;
SELECT EventName, Description, VenueID, Genre AS 'Genre/Author'
FROM Event, Movie
WHERE Event.EventCode = Movie.EventCode
UNION ALL
SELECT EventName, Description, VenueID, Author AS 'Genre/Author'
FROM Event, Play
WHERE Event.EventCode = Play.EventCode;