Disclaimer

Этот блог появился как реплика с http://blogs.technet.com/tail в силу определенных обстоятельств. Любая информация в ЭТОМ блоге предоставляется без каких либо гарантий и обязательств. Все мнения принадлежат их авторам и не могут быть связаны с позициями и мнениями официальных лиц или организаций.

среда, 28 мая 2008 г.

SELECT-запросы в Access 2007 или Как сделать выборку и вывод значений по многозначному полю.

Собственно, суть задачи: есть некая БД - суть набор выгруженных в Access 2007 с Sharepoint-портала таблиц с данными по проекту. Таблица smb_deployment содержит в себе, среди прочих, колонки с названием [customer name] и [presale name], суть которых: название заказчика и имя ответственного(ных) сотрудника(ов); при этом поле [presale name] многозначное, то есть может содержать в себе больше одного имени (так как работать с заказчиком могут одновременно несколько человек) и имена "подтягиваются"  соответствии с ID из таблицы [User Information List], содержащей в себе данные обо всех пользователях данного узла sharepoint; для представления информации из таблицы в виде презентации для руководства есть утилита, которая умеет генерировать слайды из БД, используя при этом SQL-запросы - собственно, это и есть интрига всей задачи, ибо нужно составить SELECT таким образом, чтобы для одной строки из выборки генерировать один слайд.

Другими словами, задача, если посмотреть на нее, так сказать, с высоты птичьего полета, состоит в следующем - сделать на основе собранных в виде списка на узле Sharepoint данных по текущим и завершенным проектам презентацию, отражающую информацию о работе команды за год.

После медитаций над справкой по запросам в Access 2007 и нескольких проб и ошибок, окончательное решение приняло вид вот такого запроса:

SELECT smb_deployment.[Customer name], smb_deployment.[Presale name] FROM [User Information List] INNER JOIN smb_deployment ON [User Information List].ID = smb_deployment.[Presale name].Value;

С точки зрения всей задачи - это только конструкция, которая будет вложенной в такой же SELECT, который и будет непосредственно формировать recordset для передачи в утилиту ptrreportgen, пробную версию которой можно взять здесь: http://www.ljzsoft.com/index.htm?PTRPT

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