С чем только не приходится сталкиваться на работе.
Вот и с MSAccess встретился.
Суть: делаю джойн двух таблиц получается примерно следующее:
Col1| Col2
----+-----
1 | A
1 | B
1 | C
2 | D
2 | E
3 | F
Нужно получить вот такое:
Col1| Col2
----+-----
1 | A, B, C
2 | D, E
3 | F
В разных СУБД делается по разному. В Oracle есть функция wm_concat, в MSSQL это делается через xml.
А в MSAccess такого нет. Для этого используется (кто бы сомневался) Visual Basic.
Я поискал и нашел. Во первых оригинал.
Во вторых, как я использую эту функцию:
1. Поле, которое вынимаем - "resource"
2. Таблица, из которой берем поле - "resources"
3. Любое условие WHERE, но если мы собираемся связывать таблицу с внешним запросом, то делается это так: "resourcetype in ('Телефонный номер') and accountid = " & [c.accountid], где с - таблица из внешнего запроса
4. Порядков сортировки (необязательно). Просто перечисляем поля, например "BeginDate, type"
5. Разделитель (необязательно). Если кому-то не нравится запятая и пробел, то можно использовать, например вот это "|"
А вообще много ответов на разные вопросы я нашел на этом сайте
Вот и с MSAccess встретился.
Суть: делаю джойн двух таблиц получается примерно следующее:
Col1| Col2
----+-----
1 | A
1 | B
1 | C
2 | D
2 | E
3 | F
Нужно получить вот такое:
Col1| Col2
----+-----
1 | A, B, C
2 | D, E
3 | F
В разных СУБД делается по разному. В Oracle есть функция wm_concat, в MSSQL это делается через xml.
А в MSAccess такого нет. Для этого используется (кто бы сомневался) Visual Basic.
Я поискал и нашел. Во первых оригинал.
Во вторых, как я использую эту функцию:
select accountid,
ConcatRelated("resource",
"resources",
"resourcetype in ('Телефонный номер')
and accountid = " & [c.accountid]
) as phoneslist
from customers c
Создается функция ConcatRelated, у нее 5 параметров:1. Поле, которое вынимаем - "resource"
2. Таблица, из которой берем поле - "resources"
3. Любое условие WHERE, но если мы собираемся связывать таблицу с внешним запросом, то делается это так: "resourcetype in ('Телефонный номер') and accountid = " & [c.accountid], где с - таблица из внешнего запроса
4. Порядков сортировки (необязательно). Просто перечисляем поля, например "BeginDate, type"
5. Разделитель (необязательно). Если кому-то не нравится запятая и пробел, то можно использовать, например вот это "|"
А вообще много ответов на разные вопросы я нашел на этом сайте