回答

收藏

将其中具有多个值的多行连接到MS Access中的单行

技术问答 技术问答 65 人阅读 | 0 人回复 | 2023-09-13

我正在尝试创建简单的需求管理数据库。基本上我有2张桌子,如下所示:# r8 w" ?" Z" V* W% q! U; r" C0 n
具有2列的Contract_requirements:# N% Q' {! Y% V. ^3 x
CR_ReqID    |   Description+ i& ~' j( |6 H# U8 t5 K
reqCR1      |   Contract req description 1
! u8 X$ a* x' k8 |reqCR2      |   Contract req description 2* ~9 E( B7 r5 [! u2 E3 u3 f
SW_requirements. R3 o5 m/ V& `! n  S
Title               |   SW_ReqID     |  RootReq  _% b( D; K- I& g/ D. k5 }
SW req description 1|   reqSW1       |   reqCR1, reqCR26 V) h- _# E0 [& J! |5 P
SW req description 2|   reqSW2       |   reqCR1
! M8 I7 ]/ D. D1 a. B% S* a) N* ESW req description 3|   reqSW3       |   reqCR26 U2 |. ]: o5 o
我想编写查询来接收这样的表:; E( m' p! g% g
CR_ReqID  |Description                  |where used?* o& H/ g+ U) b5 K( H- q
reqCR1    |Contract req description 1   |reqSW1, reqSW2  
& M1 i; a- ?% |" H' x- ]1 ?reqCR2    |Contract req description 2   |reqSW1, reqSW3
4 z3 s6 q6 j4 P2 \' F表“合同要求”和“软件要求”通过“ RootReq”列关联/ M% O) Y1 I* C4 C6 A1 l" V! ~
香港专业教育学院试图实现艾伦·布朗的代码 http://allenbrowne.com/func-
" R" i8 H9 @% `4 H' Qconcat.html#Top$ d8 k; E2 s& C; j# k
这是我的查询
6 I: |% F6 u3 l' h3 ]& S8 KSELECT Contract_requirements.CR_ReqID, ConcatRelated("SW_ReqID     ","SW_requirements","RootReq = """ & [CR_ReqID] & """") AS Expr1
8 X: K1 M- o4 B* E+ n: L" GFROM Contract_requirements;/ h% A) J! R, ?% e  M
但我在Access中遇到错误
3 j6 Y9 O- B! U7 [' P1 F4 C
2 e2 z$ n2 C& B" O+ o% E' E“错误3831:不能在WHERE或HAVING子句中使用多值字段’RootReq’”
% t9 y4 O* H8 c9 W7 s# F$ P: d% I
9 N8 B/ ]1 m& x8 Y/ X1 x
你们能帮我使这个工作吗?提前致谢
2 R  M0 f9 @9 ]6 [/ f, Y               
6 |6 G9 e+ T: u7 C解决方案:9 u0 i; _) q# {
                2 \) ^4 M6 r& r( p1 v& D

6 ^7 n$ [9 z6 `* B
% ?+ Z, S- }$ r0 e4 w                建立一个查询,将多值字段元素扩展到单个记录。" @! y' `% r' M7 u$ n
查询1. k( Q3 m* i: |& }0 M
SELECT SW_Requirements.Title, SW_Requirements.SW_ReqID, SW_Requirements.RootReq.Value
) i. a/ i' g" `% I3 v! G6 }FROM SW_Requirements;( @  H- q  r* \5 h
然后将该查询用作ConcatRelated()函数的源。
) r& v5 p  e1 c6 P2 \' USELECT Contract_Requirements.*,
% l' C2 R! D# d0 ~ConcatRelated("SW_ReqID","Query1","[SW_Requirements.RootReq.Value]='" & [CR_ReqID] & "'") AS WhereUsed1 ~* V9 T( j% Z$ v" t
FROM Contract_Requirements;' V; D3 `3 k; \( [5 \( e
建议不要在命名约定中使用空格或标点符号/特殊字符。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则