为了账号安全,请及时绑定邮箱和手机立即绑定

Ms Access查询:通过查询连接行

Ms Access查询:通过查询连接行

UYOU 2019-10-22 22:21:54
假设我在Ms Access中有带有以下信息的表:ColumnA ColumnB1       abc1       pqr1       xyz2       efg2       hij3       asd我的问题是,如何将第二列中的值连接到基于第一列的行值。我想要的查询结果如下:ColumnA ColumnB1       abc, pqr, xyz2       efg, hij3       asd我想通过查询来实现。有人可以帮助我实现这一目标吗?
查看完整描述

3 回答

?
森林海

TA贡献2011条经验 获得超2个赞

您需要一个函数来进行串联。


Microsoft Access压缩表中的多行


使用数据的示例:


Select T.ColumnA

  , GetList("Select ColumnB From Table1 As T1 Where T1.ColumnA = " & [T].[ColumnA],"",", ") AS ColumnBItems

From Table1 AS T

Group By T.ColumnA;


查看完整回答
反对 回复 2019-10-22
?
largeQ

TA贡献2039条经验 获得超7个赞

这是一个出色的链接:在SQL中如何通过调用函数来做到这一点。说明非常清楚,并且为您编写了该功能,因此您只需复制,粘贴和粘贴即可。即使是不了解VB的人也可以轻松实现它: 连接相关记录中的值


查看完整回答
反对 回复 2019-10-22
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

这可能很难获得。如果必须在查询而不是函数中执行此操作,则将遇到的问题是可以连接成一列的行数限制。到目前为止,我发现实现此目标的唯一方法是通过iif语句。


SELECT 

test1.ColumnA AS ColumnA, 

First([test1].[ColumnB]) & IIf(Count([test1].[ColumnB])>1,"," & Last([test1].[ColumnB])) AS ColumnB

FROM test1

GROUP BY test1.ColumnA;

返回:


ColumnA  ColumnB 

1      abc,xyz 

2      efg,hij 

3      asd

这将只返回第一个和最后一个,但是我敢肯定,您只需做一点点工作就可以计算出Choose函数,但是就像我说的那样,您必须为要添加的每个其他项添加更多的iif语句,因此局限性。


查看完整回答
反对 回复 2019-10-22
  • 3 回答
  • 0 关注
  • 603 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信