2015-07-14 3 views
0

У меня есть две таблицы с именем lu_timepoint, которая содержит точки времени по умолчанию и другую операционную таблицу с именем tbl_data. tbl_data содержит подробную информацию о кандидате и момент времени, когда он должен пройти лабораторные испытания. Временная точка будет находиться в диапазоне от -30 минут до 24 часов.получить значение, которое не существует в другой таблице, и наоборот

Таблица lu_timepoint является таблицей поиска для заданных по умолчанию временных точек. Мне нужно написать запрос, который будет проверять, существует ли временная точка в tbl_data в таблице lu_timepoint, и если ее нет, мне нужно иметь значение как false в столбце с именем checked. Аналогично, если временная точка в таблице lu_timepoint не существует в таблице tbl_data, мне нужно, чтобы в столбце было указано значение false. else true в проверенном столбце.

Я попытался с левым Присоединиться, однако я получаю больше строк из-за неправильного утверждения соединения. ниже код я использовал, чтобы получить весь идентификатор кандидата, чей временная точка не равен другой таблицу

select distinct PT, PCTPT 
    from tbl_data s 
    left join lu_Timepoint t 
    on s.STUDY = t.Study 
    where s.PCTPT = t.Timepoint 

данных прилагаются в следующей ссылке ... Table Data

+1

Укажите, какие RDBMS (MySQL, Postegre, SQL-Server) вы используете, образцы данных и желаемые результаты. –

+0

Можете ли вы предоставить более подробную информацию о вашей структуре таблицы? – kaonashi

+0

@ StanislovasKalašnikovas- Я использую SQL 2012 –

ответ

0

Я нашел решение для этого. Я сделал левое соединение с таблицей lu_timepoint и tbl_data и получил значения, которые не существуют в обеих таблицах.

Ниже приведен запрос, который я использовал.

select Candidate, CPEVENT, Test_Number, DosedTime, DoseTime, ExpectedTime, s.Timepoint as tmpt, t.Timepoint as tmpt1, CASE WHEN t.Timepoint IS NULL THEN 'Not Collected' WHEN s.timepoint IS NULL THEN 'Not Collected' ELSE 'Collected' END as Timepoint_Collection, case when t.timepoint is null THEN s.timepoint WHEN s.timepoint IS NULL THEN t.Timepoint WHEN s.timepoint = t.TIMEPOINT THEN s.timepoint END as Timepoint from vw_data s FULL OUTER JOIN lu_pk_Timepoint t on s.PCTPT = t.Timepoint AND s.STUDY=t.Study 
0

Если вы хотите получить записи, которые не существуют в соединенных ссылках и наоборот, вы можете использовать FULL OUTER JOIN, которые отображают различные значения из каждой таблицы.

Задание базы данных, которую вы используете, и предоставление структур таблиц, а некоторые из ваших данных помогут построить окончательный запрос.

Смежные вопросы