-- Только значимые столбцы
CREATE TABLE exam_mark (ID INT IDENTITY, student_id INT, mark INT)
INSERT exam_mark (student_id, mark )
VALUES (4, 5), (4, 4), (4, 4), (4, 5), (4, 2),
(5, 5), (5, 5), (5, 4), (5, 3), (5, 5),
(6, 2), (6, 2), (6, 3), (6, 2), (6, 2),
(7, 3), (7, 3), (7, 3), (7, 3), (7, 3)
SELECT gd.*
FROM exam_mark AS gd
LEFT JOIN exam_mark AS bd ON bd.student_id = gd.student_id AND bd.mark = 2
-- у кого есть 4, 5 но нет 2
WHERE (gd.mark IN (4, 5)) AND (bd.student_id IS NULL)
CREATE TABLE T (dt DATETIME, t FLOAT)
INSERT T VALUES ( '20060706 00:10', 24.0),
( '20060706 10:00', 25.0),
( '20060706 07:00', 21.0),
( '20060707 01:10', 7.0)
SELECT CONVERT(VARCHAR, dt, 104) AS [Дата],
T.t AS [Температура],
LEFT(CONVERT(VARCHAR, dt, 108),7) AS [Время]
FROM T
INNER JOIN ( SELECT CONVERT(VARCHAR, dt, 112) AS D, MAX(t) AS T
FROM T
GROUP BY CONVERT(VARCHAR, dt, 112)) AS MT
ON MT.D = CONVERT(VARCHAR, T.dt, 112) AND MT.T = T.t
ORDER BY dt