SQL flags / if операторы / новый столбец, связывающий общие значения столбцов

У меня есть несколько (8) таблиц, которые все имеют вызванный столбец Encounter_ID. То же Encounter_IDсамое может появиться в одной или нескольких таблицах. Конечная цель состоит в том, чтобы увидеть, в каких таблицах появляется определенныйEncounter_ID.

Я хотел бы создать столбцы под названием Table1_FlagTable2_Flagи т.д., со значением ‘ Y ‘ или ‘N’. Я использую Microsoft SQL Server 2014, а затем импортирую код в программное обеспечение уровня презентации, которое позволяет пользователям выбрать конкретную встречу с целью, чтобы увидеть, под какую таблицу она попадает.

Я медсестра, работающая в ИТ-отделе. таким образом, у меня есть базовый опыт кодирования SQL и буду признателен за любую помощь.

Таблица 1

Encounter_ID
1
2
3
4
5
8
9
11

Таблица 2

Encounter_ID
2
3
5
6
7
11
13

Таблица 3

Encounter_ID
1
3
5
6
10
12
13

2 ответа

  1. SELECT DISTINCT t.Encounter_ID,
    CASE WHEN t1.encounter_ID IS NULL THEN 'N' ELSE 'Y' END as Table1_Flag,
    CASE WHEN t2.encounter_ID IS NULL THEN 'N' ELSE 'Y' END as Table2_Flag,
    CASE WHEN t3.encounter_ID IS NULL THEN 'N' ELSE 'Y' END as Table3_Flag
    FROM
    (SELECT Encounter_ID FROM Table1 union all
     SELECT Encounter_ID FROM Table2 union all
     SELECT Encounter_ID FROM Table3) t
    LEFT JOIN Table1 t1 ON t.Encounter_ID = t1.Encounter_ID
    LEFT JOIN Table1 t2 ON t.Encounter_ID = t2.Encounter_ID
    LEFT JOIN Table1 t3 ON t.Encounter_ID = t3.Encounter_ID
    ORDER BY t.encounter_id
    

    Вот рабочий пример
    http://sqlfiddle.com/#!9 / 516dbc / 7 / 0