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

Откуда:
Сообщений: 12
Дана таблица учеников:
Create table P (
p_id int not null, -id ученика
s_id int not null, -id предмета
p_m int null - оценка
);

Insert into P('p_id', 's_id', 'p_m') Values ('1','1','2')
Insert into P('p_id', 's_id', 'p_m') Values ('1','2','3')
Insert into P('p_id', 's_id', 'p_m') Values ('2','1','3')
Insert into P('p_id', 's_id', 'p_m') Values ('2','2','3')
Insert into P('p_id', 's_id', 'p_m') Values ('3','1','4')
Insert into P('p_id', 's_id', 'p_m') Values ('3','2','5')

Необходимо вывести учеников, у которых оценка по каждому из предметов больше 3.

Собственно проблема именно сформулировать запрос так, чтобы выбирало только тех учеников, у которых по каждому из заданных предметов оценка больше 3 баллов...
20 май 19, 15:38    [21888996]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
"оценка по каждому из предметов больше 3" = "отсутствуют оценки меньше или равно 3 хотя бы по одному предмету"
20 май 19, 15:40    [21888997]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
LittleLady
Member

Откуда:
Сообщений: 12
Гавриленко Сергей Алексеевич,
Я понимаю. У меня проблема на sql это усечение прописать.
20 май 19, 15:51    [21889000]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
LittleLady
Гавриленко Сергей Алексеевич,
Я понимаю. У меня проблема на sql это усечение прописать.
NOT EXISTS()
20 май 19, 16:15    [21889008]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
LittleLady
Member

Откуда:
Сообщений: 12
iap, Спасибо за подсказку про not exist, правда я додумала только до такого: NOT EXIST(p_m>3) Как усечь так, чтобы оно выводило только тех учеников,у которых по всем предметом оценки выше 3, по-прежнему, не знаю :(
20 май 19, 16:31    [21889018]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
LittleLady
Member

Откуда:
Сообщений: 12
LittleLady, точнее NOT EXIST(p_m<3)
20 май 19, 16:36    [21889021]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
LittleLady
LittleLady, точнее NOT EXIST(p_m<3)


для начала представьте, как бы вы отобрали строки, которые не соответствуют вашей задаче.
у вас должен получиться запрос
вот его и поместите в not exists, предварительно связав ученика из основного запроса с учеником в подзапросе.
20 май 19, 16:40    [21889026]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
LittleLady
LittleLady, точнее NOT EXIST(p_m<3)
Раз уж вы прогуляли все лекции и практические занятия, то откройте хотя бы хелп и прочитайте синтаксис и примеры exists
20 май 19, 16:43    [21889029]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
LittleLady
Member

Откуда:
Сообщений: 12
Посетитель,
Select p_id,
From P
Where NOT EXIST(Select * From P Where p_m<3)
Так?
20 май 19, 17:03    [21889043]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
LittleLady
Посетитель,
Select p_id,
From P
Where NOT EXIST(Select * From P Where p_m<3)
Так?

этот не сдаст...
20 май 19, 17:06    [21889045]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
LittleLady
Member

Откуда:
Сообщений: 12
Гавриленко Сергей Алексеевич,
А кто Вам сказал, что это по учёбе и с чего Вы взяли, что мне так глубоко давали sql в университете?
20 май 19, 17:07    [21889046]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
LittleLady
Member

Откуда:
Сообщений: 12
TaPaK, Помогите.Пожалуйста.С формулировкой. Запроса.
20 май 19, 17:07    [21889047]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
LittleLady
Посетитель,
Select p_id,
From P
Where NOT EXIST(Select * From P Where p_m<=3)
Так?

и не забудьте про
Посетитель
предварительно связав ученика из основного запроса с учеником в подзапросе.
20 май 19, 17:10    [21889050]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
TaPaK
LittleLady
Посетитель,
Select p_id,
From P
Where NOT EXIST(Select * From P Where p_m<3)
Так?

этот не сдаст...


ну может на троечку натянем? Картинка с другого сайта.
20 май 19, 17:11    [21889051]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
LittleLady
Member

Откуда:
Сообщений: 12
Посетитель,
Select p_id,
From P
Where NOT EXIST(Select * From P Where p_m<=3 AND p_id=p_id)

Догадываюсь, что p_id=p_id неправильно, но как правильно-не знаю...Перечитала доки майкрософта, но там такого толком нету, либо я не понимаю как должна выглядеть связка.... :(
20 май 19, 17:19    [21889056]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
Konst_One
Member

Откуда:
Сообщений: 11517
alias используйте
20 май 19, 17:25    [21889064]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
LittleLady
Посетитель,
Select p_id,
From P
Where NOT EXIST(Select * From P Where p_m<=3 AND p_id=p_id)

Догадываюсь, что p_id=p_id неправильно, но как правильно-не знаю...Перечитала доки майкрософта, но там такого толком нету, либо я не понимаю как должна выглядеть связка.... :(
Мы заботимся о слепых:

К сообщению приложен файл. Размер - 27Kb
20 май 19, 17:30    [21889072]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
LittleLady
Member

Откуда:
Сообщений: 12
Konst_One,
Select p_id AS pup_id
From P
Where NOT EXIST(Select pup_id From P Where p_m<=3)


Так?
20 май 19, 17:36    [21889077]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
Konst_One
Member

Откуда:
Сообщений: 11517
вам даже красмным пометили выше, чтобы вы поняли
20 май 19, 17:50    [21889089]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
LittleLady
Member

Откуда:
Сообщений: 12
Konst_One, Там в запросе 2 таблицы, а не одна.
20 май 19, 17:57    [21889092]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
LittleLady
Konst_One, Там в запросе 2 таблицы, а не одна.
И что это меняет?
20 май 19, 17:59    [21889095]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
smj
Member

Откуда:
Сообщений: 3
Exists не нужен.

select p_id
from p
group by p_id
having min(p_m)>3
20 май 19, 23:01    [21889263]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
982183
Member

Откуда: VL
Сообщений: 3352
Это ответ на вопрос "Все ученики, у которых есть оценки больше 3"
21 май 19, 07:48    [21889360]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
982183
Member

Откуда: VL
Сообщений: 3352
Надо как минимум сначала узнать количество предметов.
21 май 19, 07:49    [21889361]     Ответить | Цитировать Сообщить модератору
 Re: sql-запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
982183
Это ответ на вопрос "Все ученики, у которых есть оценки больше 3"
"нет оценок не больше 3".
Что касается предметов, то вы считаете, что есть такие, по которым оценок нет вообще?
Такого к концу учебного периоде не бывает.
Хотя, в общем случае вы правы.
21 май 19, 09:26    [21889416]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить