Korzystanie z MS Access. Przykro mi, że tytuł jest niejasny - po prostu nie wiem dokładnie, jak opisać, jaki jest to problem, po prostu wiem, że muszę dołączyć dwie tabele lub zapytania, aby go rozwiązać.Dostęp do pytania dołączania SQL
Mam OrgHistory
tabela, która pokazuje, które organizacja każda osoba (przez ID) dołączył w określonym terminie (można być członkiem tylko jednej org naraz):
Person | Org | JoinDate
-----------------------
123 | abc | 3/2/2011
456 | abc | 4/23/1925
123 | def | 5/12/2011
Mam też Activities
tabela:
Person | Activity | ActivityDate
--------------------------------
123 | eat | 3/23/2011
123 | sleep | 6/25/2011
456 | walk | 7/20/1985
Chcę dowiedzieć się, dla każdego rekordu w Activities
, która organizacja osoba była członkiem w dniu działalności. Myślę, że może to obejmować przekształcenie wartości JoinDate
w zestaw zakresów i dopasowanie ActivityDate
do odpowiedniego przedziału, ale jestem trochę zdezorientowany, jak zaprojektować zapytanie w tym przypadku - w jaki sposób utworzyć zakresy i dopasować indywidualna wartość do zakresu?
Nie sądzę, że partition()
będzie działać, ponieważ nie próbuję przechowywać wielu wartości JoinDate
w znanej ilości wiader.
zgadzam Twój 'stół OrgHistory' brakuje' LeaveDate' atrybut: ty powinieneś dodać nową kolumnę 'LeaveDate' do swojej tabeli bazowej, dodać sekwencyjny klucz, aby zapewnić, że okresy nie mogą nakładać się na tę samą osobę (wskazówka: potrzebujesz ograniczenia' CHECK'), a następnie szoruj dane ** raz ** (@ Banjoe's zapytanie wygląda obiecująco). – onedaywhen
+1 @onedaywhen - w przypadku użycia daty opuszczenia zamiast wartości aktywnej/innactive boolean. Wiele osób uważa, że nie trzeba wracać historycznie, aby znaleźć członkostwo. – JeffO