Нужна помощь в соединении двух столов - PullRequest
1 голос
/ 26 июня 2019

У меня есть две таблицы статуса и таблицы допусков:

Допуск

cono|resno|date      |admit_disch
---------------------------------
05  |108  |2018-11-28|R 
05  |108  |2018-11-17|D
05  |108  |2016-03-07|A

Статус

cono|resno |date      |in_out
-----------------------------
05  |108   |2018-11-28|I
05  |108   |2018-11-17|O
05  |108   |2016-06-05|O
05  |108   |2016-06-05|I
05  |108   |2016-03-18|O
05  |108   |2016-03-18|I
05  |108   |2016-03-07|I

Я хотел бы присоединиться к этим таблицам, чтобы дать мневывод, как показано ниже:

cono|date      |resno|admit_disch |in_out
-----------------------------------------
05  |2018-11-28|108  |R           |I
05  |2018-11-17|108  |D           |O
05  |2016-03-07|108  |A           |I
05  |2016-06-05|108  |A           |O
05  |2016-06-05|108  |A           |I
05  |2016-03-18|108  |A           |I   
05  |2016-03-18|108  |A           |I

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

Попробуйте использовать запрос Inner Join

Select admit.cono, admit.resno, admit.date, admit.admit_disch, Status.in_out from admit Inner join Status ON admit.cono=Status=cono
0 голосов
/ 26 июня 2019

Если вы ищете результат для несоответствующей записи в таблице Admit, вам необходимо A в качестве admit_disch, тогда сработает следующее.

Просмотр ваших выходных данных соответствует записив верхнем порядке, затем по дате, поэтому я добавил столбец ManualOrder, чтобы исправить эту проблему:

SELECT cono, [date], resno, admit_disch, in_out
FROM (
    SELECT S.cono, S.[date], S.resno,
           CASE WHEN A.admit_disch IS NOT NULL THEN 1 ELSE 0 END AS ManualOrder,
           COALESCE(A.admit_disch, 'A') AS admit_disch,
           S.in_out
     FROM [Status] S
     LEFT JOIN Admit A ON A.cono = S.cono 
               AND A.resno = S.resno
               AND A.date = S.date 
) Q
ORDER BY ManualOrder DESC, [date] DESC

Демонстрация на db <> fiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...