Справка по запросам на присоединение к SQL - PullRequest
2 голосов
/ 17 апреля 2010

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

То, что я пытаюсь сделать запрос, - это когда клиент начал в городе Честер, чтобы увидеть, в какой город он переехал. Но я не хочу видеть, начали ли они в другом городе. Я также хотел бы видеть движение только один раз (так что я хотел бы только увидеть, если они пошли из Честера в Лондон, а не из Честера в Лондон в Уэльс)

StartTimeDate - это то же EndDateTime, если они переехали в другой город.

Пример данных приведен ниже, если они начинались в городе Честер: -

 
clientid      EventNumber       City             StartDateTime                  EndDateTime
1                  1            Chester          10/03/2009               11/04/2010 13:00
1                  1            Liverpool        11/04/2010 13:00         30/06/2010 16:00 
1                  1            Wales            30/07/2010 16:00

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

Может ли кто-нибудь указать правильное направление, пожалуйста?

1 Ответ

3 голосов
/ 17 апреля 2010

Вы можете использовать псевдонимы , которые позволяют использовать два экземпляра одной и той же таблицы (замените MyTable именем вашей таблицы):

SELECT A.clientid, A.EventNumber, B.City AS CityTo, A.EndDateTime AS MoveDateTime
  FROM MyTable A INNER JOIN MyTable B
       ON A.clientid = B.clientid
      AND A.EventNumber = B.EventNumber
      AND A.EndDateTime = B.StartDateTime
WHERE A.City = 'Chester'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...