Я хочу добавить в мой запрос лабораторных образцов столбец, который будет проходить по всем возможным строкам другой таблицы, а затем вычислять состояние INHOUSE, EXTERNAL или MULTISITE.Для этого нужно взглянуть на другую таблицу, в которой перечислены несколько строк для каждой строки из первой таблицы.
- Если ВСЕ экземпляры TestSite во второй таблице равны 'XX'.тогда в столбце должно быть указано INHOUSE
- Если ни один из экземпляров TestSite во второй таблице не равен «XX».тогда в столбце должно быть указано EXTERNAL
- Если НЕКОТОРЫЕ экземпляры TestSite во второй таблице равны 'XX'.тогда в столбце должно быть написано MULTISITE
Будучи относительно новым в SQL-кодировании, кто-нибудь может посоветовать, как я могу вычислить соответствующее значение из 2-й таблицы?Будет ли это какой-то цикл через 2-ю таблицу?
Я пробовал делать объединения таблиц и операторы CASE, но я просто получаю несколько строк на образец, где я ищу, чтобы получить 1 отдельную строку на образец.
SELECT
SpecimenID
FROM [LabSpecimens] LS --this is the base table
SELECT
,[SpecimenID]
,[TestSite]
FROM [LabSpecimenTests] --this is the table I want to calculate the extra column from
Таблица 2 может выглядеть следующим образом:
SpecimenID
----------
1
2
3
4
SpecimenID TestSite
---------- --------
1 XX
2 YY
2 ZZ
3 YY
3 YY
3 XX
4 YY
4 ZZ
4 XX
Ожидаемый результат должен выглядеть следующим образом:
SpecimenID Status
---------- ---------
1 INHOUSE
2 EXTERNAL
3 INHOUSE
4 MULTISITE
Любые идеи / помощь будут оценены.