IndrajitDasgupat Ответов: 3

Выберите запрос для SQL server


Всем Привет,
Мне нужно написать SQL-запрос для следующего --
У меня есть сценарий, где студенты записываются на английский язык, математику.
Теперь, если номер зачисления студента уже находится в английской группе, то он не должен приходить в математическую группу.



благодарить всех.

Что я уже пробовал:

Я могу сгруппироваться, но в обеих группах приходит один и тот же номер зачисления студентов. Но мое требование заключается в том, что если в одну группу он добавляется, то в другую группу он не должен приходить.
Я попробовал сам, а также проверил в Google.

MadMyche

Итак, давайте посмотрим на запрос(Ы), который не сработал, а также покажем нам, чего вы ожидаете в результате.

3 Ответов

Рейтинг:
1

OriginalGriff

Мы более чем готовы помочь тем, кто застрял, но это не значит, что мы здесь, чтобы сделать все это для вас! Мы не можем сделать всю работу, вам либо платят за это, либо это часть ваших оценок, и было бы совсем несправедливо, если бы мы сделали все это за вас.

Поэтому нам нужно, чтобы вы сделали работу, и мы поможем вам, когда вы застряли. Это не значит, что мы дадим вам пошаговое решение, которое вы можете сдать!
Начните с объяснения, где вы находитесь в данный момент и каков следующий шаг в этом процессе. Затем расскажите нам, что вы пытались сделать, чтобы этот следующий шаг сработал, и что произошло, когда вы это сделали.


Рейтинг:
1

Maciej Los

Все, что вам нужно сделать, это подсчитать количество вхождений для этого студента. Например:

SELECT COALESCE(SUM(CASE WHEN StudentID=@stuid THEN 1 ELSE 0 END), 0) AS NoOfOccurr
FROM TableWhereStudentIsAssignedToGroup


Примечание: Вы не предоставили структуру базы данных или образец данных, поэтому приведенный выше запрос является всего лишь примером.

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


Рейтинг:
0

Aarti Meswania

Привет,

Вы пробовали кроме этого?

;with tbl as
(
	select 1 as enrollNo, 'English' as grp union
	select 1 as enrollNo, 'Maths' as grp union
	select 2 as enrollNo, 'English' as grp union
	select 3 as enrollNo, 'English' as grp union
	select 4 as enrollNo, 'Maths' as grp 
)
select enrollNo from tbl where grp = 'English'
except 
select enrollNo from tbl where grp = 'Maths'
------------------------------Output------------------------------
/*
enrollNo
-----------
2
3
*/

Вы можете узнать больше полезных команд, таких как Intersect, except, union и т. д.

Счастливого Кодирования! :)