Please submit SQL statements as a plain text file (.txt). If blackboard rejects txt file you can submit a zipped file containing the text file. Word, PDF, or Image format are not accepted. You do not need to show screen shot. Make sure you have tested your SQL statements in Oracle 11g.
Assumptions:
The list of tables is:
Tables:
Cust Table:
cid, -- customer id
cname, --- customer name
cphone, --- customer phone
cemail, --- customer email
Category table:
ctid, --- category id
ctname, --- category name
parent, --- parent category id since category has a hierarchy structure, power washers, electric power washers, gas power washers. You can assume that there are only two levels.
Tool:
tid, --- tool id
tname, --- tool name
ctid, --- category id, the bottom level.
quantity, --- number of this tools
Time_unit table allowed renting unit
tuid, --- time unit id
len, --- length of period, can be 1 hour, 1 day, etc.
min_len, --- minimal #of time unit, e.g., hourly rental but minimal 4 hours.
Tool_Price:
tid, --- tool id
tuid, --- time unit id
price, -- price per period
Rental:
rid, --- rental id
cid, --- customer id
tid, --- tool id
tuid, --- time unit id
num_unit, --- number of time unit of rental, e.g., if num_unit = 5 and unit is hourly, it means 5 hours.
start_time, -- rental start time
end_time, --- suppose rental end_time
return_time, --- time to return the tool
credit_card, --- credit card number
total, --- total charge
Problem 1. Please write ONE SQL statement for each of the following tasks using tables above. You can ONLY use conditions listed in the task description. Task 1 and 2 each has 5 points. Tasks 3 to 6 each has 10 points. [50 points]
Task 1: return IDs of rentals started in August 2019.
Hint: function trunc(x) converts x which is of timestamp type into date type.
Task 2: Return names and quantity of all tools under the category carpet cleaner. You can assume there is no subcategory under carpet cleaner
Task 3: return number of rentals per customer along with customer ID in the year 2019 (i.e., the start_time of the rental is in 2019).
Task 4: return IDs of tools that has been rented at least twice in 2019.
Task 5: return the price of renting a small carpet cleaner (the name of the tool) for 5 hours.
Hint: find unit price for hourly rental and then multiply that by 5.
Task 6: return names of customers who have rented at least twice in year 2019 (i.e., rental’s start time is in 2019).
Anwsers
1) select rid FROM rental WHERE trunc(start_time)= '2019-08-01';
2) select tname, quantity FROM tools
INNER JOIN category ON
tools.ctid=category.cid
WHERE category.ctname= ' carpet cleaner ';
3) select cust.cid,sum(rid) AS no_of_rentals FROM ((INNER JOIN
tools ON toolsl.rid=rental.tid)
(INNER JOIN customer ON rental.cid=cust.cid) WHERE
rental.start_time='2019' ) ORDERED BY Cid;
4) select rid FROM tools
INNER JOIN rental.tid= tools.tid
WHERE rental.return_time>=2 AND
5) select total FROM rental
WHERE start_time>=2;
6) select cname from cust
INNER JOIN rental ON rental.cid=cust.cid
GROUP BY cname having count(Cid)>=2 AND rental.staet_time=
'2019';
Get Answers For Free
Most questions answered within 1 hours.