Ошибка -2147467259 (80004005): GROUP BY выдает ошибку при выполнении SQL-запроса через Excel-VBA

#sql #excel #vba #odbc

#sql #excel #vba #odbc

Вопрос:

Я использую библиотеку OLE Automation для использования SQL через Excel-VBA. введите описание изображения здесь

Но при использовании функции GROUP BY SQL я получаю ошибку во время выполнения. введите описание изображения здесь

следующий SQL-запрос РАБОТАЕТ

 strSQL = "SELECT [PO_No] FROM [SAP_Dump$]"
  

следующие SQL-запросы НЕ работают

 strSQL = "SELECT [PO_No] MAX([Amendment_No]) FROM [SAP_Dump$] GROUP BY [SAP_Dump$].[PO_No]"

strSQL = "SELECT [PO_No] FROM [SAP_Dump$] GROUP BY [SAP_Dump$].[PO_No]"
  

Комментарии:

1. Нет агрегатных функций? Выберите DISTINCT вместо GROUP BY .

2. Хммм … второй SQL действителен. Попробуйте использовать это: SELECT [PO_No] FROM [SAP_Dump$] GROUP BY [PO_No] … или, может быть, это: SELECT DISTINCT [PO_No] FROM [SAP_Dump$]

3. DISTINCT не решит задачу, потому что я должен применить SUM() MAX() функции or etc для дальнейшей задачи…

4. strSQL = «ВЫБЕРИТЕ [PO_No] ИЗ [SAP_Dump $] GROUP BY [PO_No]»

5. Вы должны либо использовать DISTINCT вместо этого, либо добавить свои агрегированные функции ( SUM() MAX() или что-то еще, что вам нужно) в запрос.