У меня есть группа людей, которые сдали тест.Я могу выбрать их идентификаторы с помощью этого запроса:
SELECT person_id
FROM tests
WHERE test_code = 1234
Я хотел бы извлечь записи этих людей из демографической таблицы, поэтому я попытался выполнить этот подзапрос:
SELECT *
FROM demographics d
WHERE d.person_id IN (
SELECT t.person_id
FROM tests t
WHERE t.test_code = 1234
)
... но я не получаю никаких результатов.Если я возьму пару идентификаторов из (функционального) подзапроса и жестко закодирую их в критерии IN:
SELECT *
FROM demographics d
WHERE d.person_id IN (01123, 58132)
... запрос работает.Мне здесь не хватает чего-то действительно фундаментального - вы знаете, что это такое?
Возможные осложняющие факторы: t.person_id - char13, d.person_id - varchar50.Это MS SQL Server 9.0.4035;Я работаю в SQL Server Management Studio.
Заранее благодарен за помощь!