ti@work X-press

Май 28, 2008

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

Опубликовано в: [work], [technical advices] — ti@work @ 12:45 pm

Три кружки китайского чая с лотосом, две партии в настольный теннис (причем одна проиграна с разгромным счетом, меня даже “из десятка” не выпустили) и вот вам - очередная задачка с решением.

Собственно, суть задачи: есть некая БД - суть набор выгруженных в 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

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

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

RSS лента комментариев этой записи. TrackBack URI.

Оставить комментарий

You must be logged in to post a comment.

Работает на WordPress

Rodney's Bread Crumbs plugged in.