Возврат строк SQL с данными, объединенными для каждой строки в доступе - PullRequest
1 голос
/ 17 июля 2011

В доступе у меня есть таблица, которая похожа на

ID| ROOMS | NOTES|
78|    234|      |
3 |    231|  key |
78|    195|      |
3 |    164|      |

Я хочу запрос sql, который возьмет идентификатор и объединит их в одну строку, так что это будет

78 -> 234,195
3->231, 164 -> key

я просто хочу объединить строки только в запросе no в новую таблицу

Ответы [ 2 ]

0 голосов
/ 18 июля 2011

это ваш вопрос "Как вы можете group_concat в Access?"
Эта ссылка может быть полезна: есть ли функция group_concat в ms-access?

0 голосов
/ 18 июля 2011

К сожалению, для этого вам нужно будет создать функцию, но, к счастью, access поддерживает использование функций VBA внутри вашего запроса SQL.

Например, функция для объединения ободов на основе заданного идентификатора.будет выглядеть следующим образом:

Public Function MyRooms(lngID As Variant) As Variant

   Dim rstRooms         As DAO.Recordset

   If IsNull(lngID) Then Exit Function

   Set rstRooms = "select Rooms from tblBookings where id = " & lngID
   Do While rstRooms.EOF
      If MyRooms <> "" Then MyRooms = MyRooms & "->"
      MyRooms = MyRooms & rstRooms!Rooms
      rstRooms.MoveNext
   Loop
   rstRooms.Close

End Function

Теперь ваш запрос может выглядеть следующим образом:

Select id, MyRooms([id]) as Rooms, Notes from some table.

Вы также можете сделать идентичную функцию почти такой же для столбца заметок, и снова просто поместите функциючто в приведенном выше запросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...