Как сравнить, если значение находится в одной таблице, и оно изменяется в другой таблице? - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть две таблицы с одинаковой схемой, и они относятся к людям, работающим в разных местах в разные годы:

  • Таблица Work2018 (personID, locationID) и
  • Таблица Работа2019 (personID, locationID)

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

Проблема здесь в том, что один и тот же человек может работать в нескольких местах в течение года.

Например:

  • person123 работает в locationA и locationB in 2018
  • person123 работает в locationB и location C in 2019

Я хочу вернуть, что person123 изменилось с locationA до locationC .

Я пробовал объединение влево между двумя таблицами, где personID одинаков, но locationID отличаетсянт.

select 
    personID, locationID
from 
    Work2018 w18
    left join Work2019 w19 on 
        w18.personID = w19.personID 
        and w18.locationID <> w19.locationID

Однако существуют случаи, когда порядок записей в предложении соединения влияет на вывод.

Например, когда нет изменений, но они возвращаются запросомкак разные:

  • person456 работает в locationX и locationY in Work2018
  • person456 работает в locationY и locationX in Work2019

В том же контексте я нехочу вернуть тех, кто работает в 2018 году, а не в 2019 году и наоборот - только тех, кто присутствует в обоих годах / таблицах.

Вот выдержка из таблицы:

Work2018
personId        locationId
110062159304    35120017
110062170707    35165001
110062170707    35438480
110063060212    35438480
110067060543    35271160
110067060543    35904648

Work2019
personId        locationId
110062159304    35120017
110062159304    35469713
110062170707    35438480
110063060212    35438756
110062328424    35104206
110067060543    35904648
110067060543    35271160

OUTPUT:

personID        from        to
110062159304    -           35469713
110063060212    35438480    35438756    

Как я могу справиться с этой ситуацией?

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