Próbuję połączyć dwie tabele razem, ale mają dziwne wymagania.Skomplikowane SQL Dołącz
Normalnie bym po prostu dołączyć, gdzie płyta jest dla danego klienta i kod pasuje
SELECT *
FROM DataTable d
JOIN LookupTable l
ON d.LookupCode = l.LookupCode
AND d.Customer = l.Customer
Jednak to, co muszę zrobić, to dołączyć na trzech wierszy z tabeli. Identyfikator, który pasuje, oraz wiersz przed i po (jeśli istnieją) oparty na porządku sortowania w innej kolumnie (Zamówienie). Następnie muszę posortować wynik, z rekordem, który pasuje pierwszy, a następnie rekordem wyszukiwania, który był wcześniej, a następnie rekordem wyszukiwania, który był po dopasowanym rekordzie.
Jakieś przemyślenia na temat najlepszego sposobu osiągnięcia tego?
Przykład:
Lookup:
Customer Code Order
12345 A 1
12345 B 2
12345 C 3
12345 D 4
12345 E 5
22222 A 1
22222 B 2
22222 D 4
22222 E 5
Data:
Customer Code
12345 B
12345 D
22222 B
22222 D
Result I need
Customer Code
12345 B
12345 A
12345 C
12345 D
12345 C
12345 E
22222 B
22222 A
22222 D
22222 D
22222 B
22222 E
Czy możesz podać przykład, aby wyjaśnić? Także, który RDBMS –
Co RDBMS, proszę? Jest to łatwiejsze w tych implementacjach, które mają funkcje OLAP ... Czy mógłbyś podać, do czego kolumny _właściwości_, w których chcesz dopasować? Jak to jest, nie jest jasne, skąd pochodzi "ID", a kolumna "Zamówienie" (uwaga dodatkowa - nie zaleca się nadawania nazw tabelom/kolumnom po słowach "zarezerwowanych" w SQL). –
Serwer Sql, dodałem exmaple – CaffGeek