0% found this document useful (0 votes)
4 views

DatabaseExercise-2

Uploaded by

linh
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

DatabaseExercise-2

Uploaded by

linh
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 21

Practical exercise 2.

1
1.
2.
3.
a.

SELECT
StdName,
Enrollment.
OfferNo,
EnrGrade
FROM
Enrollment JOIN Offering
ON Enrollment.OfferNo=Offering.OfferNo
WHERE
EnrGrade>=3.5
AND
OffTern=1
AND
OffYear=2020;

b.

SELECT
StdName,
Enrollment.OfferNo
FROM
Enrollment JOIN Offering
ON Enrollment.OfferNo=Offering.OfferNo
WHERE
EnrGrade>3.7
AND
OffTern=1
AND
OffYear=2020;

c.

SELECT
OfferNo,
O.CrsNo,
OffDay,
OffLocation,
OffTime
FROM ((Offering O
JOIN Course C
ON O.CrsNo=C.CrsNo)
JOIN Lecturer L
ON O.LecID=L.LecID)
WHERE
LecName="Nguyen Thi Hoa"
AND
OffTern=1
AND
OffYear=2021;

d.

SELECT
StdName,
E.OffNo
FROM
(Enrollment E
JOIN
Student S
ON E.StdID=S.StdID)
JOIN
Offering O
ON E.OfferNo=O.OfferNo
WHERE
StdMajor LIKE “EM%”
AND
EnrGrade>3.7
AND
OffTern=1
AND
OffYear=2022;

e.

SELECT
Student.StdID,
Student.StdName,
Enrollment.EnrGrade
FROM
Enrollment
JOIN
Offering ON Enrollment.OfferNo = Offering.OfferNo
JOIN
Course ON Offering.CrsNo = Course.CrsNo
JOIN
Student ON Enrollment.StdID = Student.StdID
WHERE
Student.StdClass = 'Math 1' AND Course.CrsDesc = 'Algebra';

f.

SELECT
Student.StdID,
Student.StdName
FROM
Enrollment
JOIN
Offering ON Enrollment.OfferNo = Offering.OfferNo
JOIN
Course ON Offering.CrsNo = Course.CrsNo
JOIN
Student ON Enrollment.StdID = Student.StdID
WHERE
Course.CrsDesc = 'Algebra' AND Offering.OffTerm = '20221' AND
Enrollment.EnrGrade < 4;

g.
SELECT
MAX(Enrollment.EnrGrade) AS HighestGrade
FROM
Enrollment
JOIN
Offering ON Enrollment.OfferNo = Offering.OfferNo
JOIN
Course ON Offering.CrsNo = Course.CrsNo
JOIN
Student ON Enrollment.StdID = Student.StdID
WHERE
Student.StdClass = 'Math 1' AND Course.CrsDesc = 'Algebra';

h.
SELECT
AVG(Enrollment.EnrGrade) AS AverageGrade
FROM
Enrollment
JOIN
Offering ON Enrollment.OfferNo = Offering.OfferNo
JOIN
Course ON Offering.CrsNo = Course.CrsNo
WHERE
Course.CrsDesc = 'Algebra' AND Offering.OffTerm = '20221';

i.
SELECT
COUNT(Enrollment.StdID) AS NumberOfFails
FROM
Enrollment
JOIN
Offering ON Enrollment.OfferNo = Offering.OfferNo
JOIN
Course ON Offering.CrsNo = Course.CrsNo
WHERE
Course.CrsDesc = 'Algebra' AND Offering.OffTerm = '20221' AND
Enrollment.EnrGrade < 4;

j.
SELECT
Offering.CrsNo,
COUNT(Enrollment.StdID) AS NumberOfFails
FROM
Enrollment
JOIN
Offering ON Enrollment.OfferNo = Offering.OfferNo
WHERE
Offering.OffTerm = '20221' AND Enrollment.EnrGrade < 4
GROUP BY
Offering.CrsNo;

k.
SELECT
Offering.OffTerm,
COUNT(Enrollment.StdID) AS NumberOfFails
FROM
Enrollment
JOIN
Offering ON Enrollment.OfferNo = Offering.OfferNo
WHERE
Offering.OffTerm = '20221' AND Enrollment.EnrGrade < 4
GROUP BY
Offering.OffTerm;
l.
SELECT
Course.CrsNo,
Course.CrsDesc,
COUNT(Enrollment.StdID) AS NumberOfFails
FROM
Enrollment
JOIN
Offering ON Enrollment.OfferNo = Offering.OfferNo
JOIN
Course ON Offering.CrsNo = Course.CrsNo
WHERE
Offering.OffTerm = '20021' AND Enrollment.EnrGrade < 4
GROUP BY
Course.CrsNo, Course.CrsDesc
HAVING
COUNT(Enrollment.StdID) > 100;

Exercise 2.2
Câu 1 và 2 làm tương tự phần 2.1

3.
a.
SELECT
ProID,
ProName,
Price
FROM
PRODUCTS
WHERE
Price >= 1000000;

b.
SELECT
ProID,
ProName
FROM
PRODUCTS
WHERE
InStock = 0;

c.
SELECT DISTINCT
P.ProID,
P.ProName
FROM
PRODUCTS P
JOIN ORDERDETAILS OD
ON P.ProID = OD.ProID
JOIN ORDERS O
ON OD.OrdNum = O.OrdNum
WHERE
O.OrdDate BETWEEN '2022-10-01' AND '2022-10-31';

d.
SELECT
C.CusName,
C.Phone
FROM
CUSTOMERS C
JOIN ORDERS O
ON C.CusID = O.CusID
WHERE
O.OrdDate = '2022-10-10';

e.
SELECT DISTINCT
C.CusID,
C.CusName
FROM
CUSTOMERS C
JOIN ORDERS O
ON C.CusID = O.CusID
WHERE
O.OrdDate = '2022-10-10'
AND
O.PurchaseAmt >= 1000000;

f.
SELECT DISTINCT
C.CusID,
C.CusName
FROM
CUSTOMERS C
JOIN ORDERS O
ON C.CusID = O.CusID
JOIN ORDERDETAILS OD
ON O.OrdNum = OD.OrdNum
WHERE
OD.ProID = 'P1'
AND
OD.Quantity > 10;

g.
SELECT DISTINCT
C.CusID,
C.CusName
FROM
CUSTOMERS C
JOIN ORDERS O
ON C.CusID = O.CusID
JOIN ORDERDETAILS OD
ON O.OrdNum = OD.OrdNum
JOIN PRODUCTS P
ON OD.ProID = P.ProID
WHERE
P.ProName = 'Pencil'
AND
OD.Quantity > 10;

h.
SELECT
P.ProID,
P.ProName
FROM
PRODUCTS P
WHERE
P.ProID NOT IN (
SELECT DISTINCT
OD.ProID
FROM
ORDERDETAILS OD
JOIN ORDERS O
ON OD.OrdNum = O.OrdNum
WHERE
O.OrdDate BETWEEN '2022-10-01' AND '2022-10-31'
);

i.
SELECT DISTINCT
C.CusName,
C.Phone
FROM
CUSTOMERS C
JOIN ORDERS O
ON C.CusID = O.CusID
JOIN ORDERDETAILS OD1
ON O.OrdNum = OD1.OrdNum
JOIN ORDERDETAILS OD2
ON O.OrdNum = OD2.OrdNum
WHERE
OD1.ProID = 'P1'
AND
OD2.ProID = 'P2';
j.
SELECT
SUM(OD.Quantity * OD.UnitPrice) AS SalesRevenue
FROM
ORDERDETAILS OD
JOIN ORDERS O
ON OD.OrdNum = O.OrdNum
WHERE
O.OrdDate = '2024-10-20';

k.
SELECT
COUNT(O.OrdNum) AS TotalOrders,
SUM(OD.Quantity * OD.UnitPrice) AS TotalRevenue
FROM
ORDERS O
JOIN ORDERDETAILS OD
ON O.OrdNum = OD.OrdNum
WHERE
O.OrdDate BETWEEN '2024-10-01' AND '2024-10-31';

l.
SELECT
C.CusID,
C.CusName,
COUNT(O.OrdNum) AS NumberOfOrders
FROM
CUSTOMERS C
JOIN ORDERS O
ON C.CusID = O.CusID
GROUP BY
C.CusID,
C.CusName;

m.
SELECT
C.CusID,
C.CusName,
SUM(O.PurchaseAmt) AS TotalPurchaseAmount
FROM
CUSTOMERS C
JOIN ORDERS O
ON C.CusID = O.CusID
GROUP BY
C.CusID,
C.CusName;
n.
SELECT
P.ProID,
P.ProName,
SUM(OD.Quantity) AS TotalQuantitySold
FROM
PRODUCTS P
JOIN ORDERDETAILS OD
ON P.ProID = OD.ProID
JOIN ORDERS O
ON OD.OrdNum = O.OrdNum
WHERE
'2024-10-01' AND '2024-10-31'
GROUP BY
P.ProID,
P.ProName;

o.
SELECT
P.ProID,
P.ProName,
SUM(OD.Quantity * OD.UnitPrice) AS TotalRevenue
FROM
PRODUCTS P
JOIN ORDERDETAILS OD
ON P.ProID = OD.ProID
JOIN ORDERS O
ON OD.OrdNum = O.OrdNum
WHERE
O.OrdDate BETWEEN '2024-10-01' AND '2024-10-31'
GROUP BY
P.ProID,
P.ProName
HAVING
TotalRevenue < 10000000;

You might also like