У меня проблема с написанием запроса для генерации одного строкового результата из нескольких записей.
Из-за ограничений, которые у меня есть в работе, я использую Access 2007 в качестве серверной части и Excel 2007 в качестве внешний интерфейс - ввод данных / отчеты с пользовательскими формами Excel, которые подключаются к базе данных. Мои пользователи не имеют / не могут иметь доступ к Access, только Excel и системы, с которыми мы работаем, не могут быть запущены с использованием Excel в качестве хранилища данных.
Отчет, который я пытаюсь сгенерировать нужно перевести результат так:
moduleID | departmentID
115 | 7
116 | 7
116 | 23
117 | 7
117 | 23
В это:
moduleID | departments
115 | 7
116 | 7, 23
117 | 7, 23
Поскольку я подключаюсь к базе данных через соединение в VBA, мне кажется, что я не могу использовать пользовательские функции, которые кажутся основными решениями, и я считаю, что решение XML Path также несовместимо с Access.
Я наткнулся на решение, которое каким-то образом использует IIF и имеет такая строка в запросе:
IIF(ISNULL(departments), departmentID, departments & ', ' & departmentID)
, но у меня возникают проблемы с ее адаптацией.
Пока у меня есть этот запрос, который дает СЧЕТ отделов:
SELECT
moduleID,
COUNT(departmentID) AS departments
FROM (
SELECT
forecastingModules.moduleID, Forecasting.departmentID
FROM
Forecasting
LEFT JOIN forecastingModules
ON Forecasting.editID = forecastingModules.editID
GROUP BY
forecastingModules.moduleID, Forecasting.departmentID
)
GROUP BY
moduleID;
Спасибо за любую помощь, которую вы можете оказать, чтобы указать мне правильное направление.