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

DatabaseExercise-2

Uploaded by

linh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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
We take content rights seriously. If you suspect this is your content, claim it here.
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