У меня есть две таблицы, которые перечислены ниже.SQL Server: Результат, который соответствует всем значениям в списке
TableA
StudentID StudentName
1 A
2 B
3 C
4 D
5 E
TableB
StudentID ClassID SectionID
1 2 5
3 2 7
Теперь я пытаюсь получить тех студентов, для которых все элементы в списке ввода матчей.
Например, если я передаю список ввода (ClassID & SectionID) в (2, 5), он должен вернуть StudentID: 1
Если я передаю список ввода как (2, 5 | 1, 1) он не должен возвращать StudentID: 1
DECLARE @tblData AS TABLE
(
[ClassID] INT
,[SectionID] INT
)
INSERT INTO @tblData VALUES (2, 5)
INSERT INTO @tblData VALUES (2, 1)
SELECT
A.[StudentID]
,A.[StudentName]
,B.[ClassID]
,B.[SectionID]
FROM
[AAAAAA] AS A
INNER JOIN [BBBBBB] AS B
ON A.[StudentID] = B.[StudentID]
INNER JOIN @tblData AS C
On B.[ClassID] = C.[ClassID] AND B.[SectionID] = C.[SectionID]
к сожалению, указанный выше запрос не возвращает ожидаемое значение.
Не могли бы вы помочь мне?
Привет, Valex, Спасибо за вашу большую помощь. Но я изменил записи в SQLFiddle. http://sqlfiddle.com/#!6/33551/1. Теперь он должен вернуть StudentID 1 и 3. Не могли бы вы посмотреть на это? –
Привет Valex, если я изменю эту строку HAVING COUNT (*) = (SELECT COUNT (*) FROM @tblData), как HAVING COUNT (*)> 0, тогда он работает нормально. Я прав? Пожалуйста помоги. –