#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()
или что-то еще, что вам нужно) в запрос.