Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Создание запроса-выборки SQL с несколькими значениями  [new]
stelgi
Member

Откуда:
Сообщений: 4
Добрый день. Есть таблица Студенты(№_студента, ФИО), Дисциплины(№_дисциплины, Название), Оценки(№_студента, №_дисциплины, Оценка).
Необходимо создать запрос "Получить фамилии студентов, сдавших все дисциплины". Как это можно реализовать, не могу понять, с помощью чего?
6 ноя 18, 12:36    [21725106]     Ответить | Цитировать Сообщить модератору
 Re: Создание запроса-выборки SQL с несколькими значениями  [new]
Kopelly
Member

Откуда: Красноярск
Сообщений: 289
Как вариант:
Select ...
From [студенты]
cross apply [дисциплины]
left join [оценки] on ...
Group by №_студента
Having count(*) = count([Оценки].Оценка)
6 ноя 18, 12:48    [21725126]     Ответить | Цитировать Сообщить модератору
 Re: Создание запроса-выборки SQL с несколькими значениями  [new]
stelgi
Member

Откуда:
Сообщений: 4
Kopelly,
Не сообразил, как применить ваш код(
Но сделал вот так
Select Студенты.[ФИО]
From Студенты, Оценки
WHERE Оценки.[№_студента]=Студенты.[№_студента]
Group by Студенты.[ФИО]
HAVING count(Оценки.[Оценка])=3
6 ноя 18, 13:14    [21725153]     Ответить | Цитировать Сообщить модератору
 Re: Создание запроса-выборки SQL с несколькими значениями  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
SELECT *
FROM Студенты С
WHERE NOT EXISTS
(
 SELECT *
 FROM Оценки О
 WHERE О.№_студента=С.№_студента
   AND NOT EXISTS
   (
    SELECT *
    FROM Дисциплины Д
    WHERE Д.№_студента=С.№_студента
      AND Д.№_дисциплины=О.№_дисциплины
   )
);
6 ноя 18, 13:35    [21725180]     Ответить | Цитировать Сообщить модератору
 Re: Создание запроса-выборки SQL с несколькими значениями  [new]
Shakill
Member

Откуда: мск
Сообщений: 1880
SELECT *
FROM Студенты С
WHERE NOT EXISTS
(
 SELECT Д.№_дисциплины
 FROM Дисциплины Д
 EXCEPT
 SELECT О.№_дисциплины
 FROM Оценки О
 WHERE О.№_студента=С.№_студента
);
6 ноя 18, 14:24    [21725264]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить