Как использовать SQL-соединения в Excel
Я видел вопрос, обновленный около года назад, который проделал мне долгий путь к решению, которое мне нужно, но привело к большему количеству вопросов, чем ответов.
Позвольте мне начать с того, что я не «новичок» в SQL (DB2, SQLServer, Oracle), но я относительный «новичок» в использовании SQL в Excel. Кроме того, я работаю в 2010 году, но должен сохранить совместимость с 2003 годом.
Я пытаюсь сопоставить данные на одном листе с другим и сообщить об исключениях. Я хочу выбрать 6 столбцов из «Открытых строк» и сопоставить их с 3 столбцами из «Задних заказов» и показать только исключения. «Открытые линии» могут быть 1..n, а «Обратные заказы» могут быть 0..n. Я только хочу взять строки, где существуют «Задержки».
Чтобы написать нормальный SQL, я бы сделал что-то вроде этого:
SELECT
O.[Part Number], O.[Part Desc], O.[Source Domain], O.[Ship Qty], O.[Date Created],
B.[Dest Domain], B.[Quantity], B.[Date Created]
FROM [OPEN LINES] O
JOIN [Back Orders] B ON O.[Part Number] = B.[Part Number]
WHERE B.[Part Number] IS NOT NULL
ORDER BY O.[Part Number]
Проблема в том, что я не могу пройти соединение без ошибки. Это то, что я до сих пор.
rs.Open "SELECT [OPEN LINES$].[Part Number], [OPEN LINES$].[Part Desc], " $ _
"[OPEN LINES$]. [Source Domain], " & _
"[OPEN LINES$].[Ship Qty], [OPEN LINES$].[Date Created] " & _
"FROM [OPEN LINES$] " & _
"JOIN [Back Orders$] ON [OPEN LINES$].[Part Number] = [Back Orders$].[Part Number] " & _
"ORDER BY [OPEN LINES$].[Part Number] ;", cn
Буду признателен за любую помощь, которую вы можете оказать.
Горд