Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
--Class
INSERT INTO Class (ClassID, ClassName, [Section])
VALUES(1, 'First', 'A')
--Student Records
INSERT INTO Student(StudentID, StudentName, ClassID)
VALUES(1, 'Stud1', 1)
Write the following Queries using (Inner, Outer, Self, SubQueries, Inline Views)
--1
SELECT StudentID, StudentName, ClassName, C.[Section] FROM Student S
INNER JOIN Class C ON (C.ClassID = S.ClassID)
--2
SELECT StudentID, StudentName, ClassName, C.[Section] FROM Student S
LEFT OUTER JOIN Class C ON (C.ClassID = S.ClassID)
--3
SELECT StudentID, StudentName, ClassName, C.[Section] FROM Student S
RIGHT OUTER JOIN Class C ON (C.ClassID = S.ClassID)
--OR
--5
SELECT ClassName, [Section], COUNT(*) FROM Student S
INNER JOIN Class C ON (C.ClassID = S.ClassID)
GROUP BY ClassName, [Section]
--6
SELECT ClassName, [Section], SUM(Marks1+Marks2+Marks3) FROM Student S
INNER JOIN Class C ON (C.ClassID = S.ClassID)
INNER JOIN Marks M ON (M.StudentID = S.StudentID)
GROUP BY ClassName, [Section]
--7
SELECT ClassName, [Section], Marks1+Marks2+Marks3 FROM Student S
INNER JOIN Class C ON (C.ClassID = S.ClassID)
INNER JOIN Marks M ON (M.StudentID = S.StudentID)
WHERE Marks1+Marks2+Marks3 > 180
--8
SELECT * FROM Student S
WHERE S.ClassID IN (SELECT ClassID FROM Class C WHERE C.ClassName =
'First' AND C.[Section] = 'A')
--OR
--9
SELECT
StudentName, ClassName, [Section],
Marks1, MaxMarks1
FROM Student S
INNER JOIN Class C ON (C.ClassID = S.ClassID)
INNER JOIN Marks M ON (M.StudentID = S.StudentID)
INNER JOIN
(
SELECT C.ClassID, MAX(Marks1) MaxMarks1
FROM Student S
INNER JOIN Class C ON (C.ClassID = S.ClassID)
INNER JOIN Marks M ON (M.StudentID = S.StudentID)
GROUP BY C.ClassID
) M1 ON (M1.ClassID = C.ClassID)
ORDER BY ClassName, [Section]
--10
SELECT
S.StudentName, ClassName, [Section],
Marks1+Marks2+Marks3 Total, MaxTotal, T1.StudentName
FROM Student S
INNER JOIN Class C ON (C.ClassID = S.ClassID)
INNER JOIN Marks M ON (M.StudentID = S.StudentID)
INNER JOIN
(
SELECT C.ClassID, MAX(Marks1+Marks2+Marks3) MaxTotal
FROM Student S
INNER JOIN Class C ON (C.ClassID = S.ClassID)
INNER JOIN Marks M ON (M.StudentID = S.StudentID)
GROUP BY C.ClassID
) M1 ON (M1.ClassID = C.ClassID)
INNER JOIN
(
SELECT StudentName, ClassID, Marks1+Marks2+Marks3 Total
FROM Student S
INNER JOIN Marks M ON (M.StudentID = S.StudentID)
) T1 ON (T1.ClassID = M1.ClassID AND M1.MaxTotal = T1.Total)
ORDER BY ClassName, [Section]