Za pomocą połączenia wewnętrznego określ przedział między konkretnymi rekordami i powiązanymi zdarzeniami w tabeli

Mam prostą tabelę, która służy do rejestrowania zdarzeń przeciwko określonym wizytom:

<code>Describe Histories;
    +------------------+
    | Field            |
    +------------------+
    | HistoryId        |
    | VisitId          |
    | Location         |
    | Event            |
    | EventTime        |
    +------------------+
</code>

Osoby są powiązane z wizytami (VisitId). Dla każdej wizyty osoba może mieć wiele zapisów historii. Zdarzeniami mogą być przyjęcia, przeniesienia lub rozładowania.

Próbuję napisać zapytanie, aby obliczyć czas trwania każdej lokalizacji dla każdej osoby. Pamiętaj, że mogą odwiedzać Lokalizację wiele razy dla każdej wizyty. Osoba wchodzi do Lokacji z Imprezą Wstępu lub Transferu i opuszcza ją z Rozładowaniem lub Transferem.

Jeśli dana osoba wejdzie w Lokalizację „A”, jej rekord przyjęcia lub transferu wyświetli lokalizację „A”, jednak jeśli przeniesie swój transfer (lub zwolni), wyświetli kolejną lokalizację, powiedz „B”.

Dlatego muszę znaleźć odstęp między transferem do lokalizacji „A” a kolejnym (w czasie) transferem do lokalizacji „B”. Transfery wewnątrz lokalizacji nie są oceniane.

Rozumiem, że rozwiązanie będzie prawdopodobnie oparte na INNER JOIN, ale nie rozumiem, jak wybrać rekord „out”, który odpowiada najnowszemu transferowi „in”.

Sądzę, że jest to dość skomplikowane - mam nadzieję, że w wyjaśnieniach było wystarczająco jasne.

Wszelkie wskazówki są bardzo mile widziane.

questionAnswers(2)

yourAnswerToTheQuestion