powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как применить дополнительное условие на запрос с Having ?
5 сообщений из 5, страница 1 из 1
Как применить дополнительное условие на запрос с Having ?
    #39914039
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите допилить запрос.

Есть таблицы студент и группа(всё как обычно). У студента есть FK на группу.
Надо выбрать такие группы в которых сумма возрастов студентов будет 200.

Я написал такой запрос:

Код: sql
1.
2.
3.
4.
SELECT gr.id
FROM group gr join student st on gr.id = st.group_id
group by gr.id
HAVING SUM(st.age)=200



Теперь надо исключить из этой выборки группы, в которых есть студенты, которым 20 лет.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT gr.id
FROM group gr join student st on gr.id = st.group_id
where gr.id not in 
  (SELECT gr.id
   FROM group gr join student st on gr.id = st.group_id
   WHERE  st.age=20
   GROUP BY gr.id)
group by gr.id
HAVING SUM(st.age)=200


Что-то в таком духе стоит писать или есть попроще варианты?
...
Рейтинг: 0 / 0
Как применить дополнительное условие на запрос с Having ?
    #39914042
Gerros
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кому-то проще так:
Код: sql
1.
2.
3.
4.
5.
6.
select gr.id
from t_group gr
join t_student st on gr.id = st.group_id
group by gr.id
having sum( st.age) = 200
   and max( case when st.age = 20 then 1 else 0 end) = 0
...
Рейтинг: 0 / 0
Как применить дополнительное условие на запрос с Having ?
    #39914071
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На самом деле быстрее всего (я уверен), будет самый простой, "дословный" запрос:
Код: sql
1.
2.
3.
4.
5.
SELECT gr.id
FROM [group] gr join student st on gr.id = st.group_id
Where not exists (select 1 from student st1 where gr.id = st1.group_id and st1.age = 20 )
group by gr.id
HAVING SUM(st.age)=200
...
Рейтинг: 0 / 0
Как применить дополнительное условие на запрос с Having ?
    #39914225
nullin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
questioner, а вам надо из какой выборки исключить возраста?
После промежуточного итога, как вы излагаете, или до, как кодируете?
...
Рейтинг: 0 / 0
Как применить дополнительное условие на запрос с Having ?
    #39914229
nullin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А все, увидел, у Gerros правильный вариант.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как применить дополнительное условие на запрос с Having ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]