单行一对多
One to many on single row
我有一个包含联系人和 phone 号码 table 的访问数据库。每个联系人可以有 0 到 10 phone 个号码。我正在尝试获取同一行中每个联系人的所有号码,以便作为 .csv 导入到另一个系统。我试过使用数据透视表,但 运行 遇到了问题,因为每个联系人都有不同数量的 phone 号码。
所以根据你的描述,你有一个联系人 table 比如,
tbl_Contacts
````````````
contactID | contactName
------------+---------------
1 | Jones
2 | Jackson
一条phone条顾客喜欢的记录,
tbl_PhoneRecords
````````````````
phoneID | contactID | contactNumber
--------+---------------+-----------------
1 | 1 | 555-555-5555
2 | 1 | 555-444-7777
3 | 2 | 111-111-1111
你想要的输出就像,
qry_Output
``````````
contactID | contactName | joinedContact
------------+---------------+-------------------------------
1 | Jones | 555-555-5555, 555-444-7777
2 | Jackson | 111-111-1111
您也许可以使用 Allen Browne 的代码 Concat Related。所以你的 SQL 会是这样的,
SELECT
tbl_Contacts.contactID,
tbl_Contacts.contactName,
ConcatRelated("contactNumber", "tbl_PhoneRecords", "contactID = " & tbl_Contacts.contactID) As joinedContact
FROM
tbl_Contacts;
希望对您有所帮助!
我有一个包含联系人和 phone 号码 table 的访问数据库。每个联系人可以有 0 到 10 phone 个号码。我正在尝试获取同一行中每个联系人的所有号码,以便作为 .csv 导入到另一个系统。我试过使用数据透视表,但 运行 遇到了问题,因为每个联系人都有不同数量的 phone 号码。
所以根据你的描述,你有一个联系人 table 比如,
tbl_Contacts
````````````
contactID | contactName
------------+---------------
1 | Jones
2 | Jackson
一条phone条顾客喜欢的记录,
tbl_PhoneRecords
````````````````
phoneID | contactID | contactNumber
--------+---------------+-----------------
1 | 1 | 555-555-5555
2 | 1 | 555-444-7777
3 | 2 | 111-111-1111
你想要的输出就像,
qry_Output
``````````
contactID | contactName | joinedContact
------------+---------------+-------------------------------
1 | Jones | 555-555-5555, 555-444-7777
2 | Jackson | 111-111-1111
您也许可以使用 Allen Browne 的代码 Concat Related。所以你的 SQL 会是这样的,
SELECT
tbl_Contacts.contactID,
tbl_Contacts.contactName,
ConcatRelated("contactNumber", "tbl_PhoneRecords", "contactID = " & tbl_Contacts.contactID) As joinedContact
FROM
tbl_Contacts;
希望对您有所帮助!