访问将行连接成单行:需要额外的条件

Posted

技术标签:

【中文标题】访问将行连接成单行:需要额外的条件【英文标题】:Access Concatenate rows into single rows: extra conditions needed 【发布时间】:2009-02-04 14:49:15 【问题描述】:

我正在使用 Access 数据库,我需要将不同的相关行连接成 1 行。我找到了一个解决方案here 并成功使用它。但是我需要为其添加额外的条件,只有在某些其他列也相等时才应该这样做。 例如:

1 X 阿尔法

2 年测试版

1 X 伽马

1 Z 增量

应该变成

1 X 阿尔法,伽玛

1 Z 增量

2 年测试版

有谁知道这样做,尤其是像我这样的新手?

【问题讨论】:

您似乎在反规范化?这是你的真实意图吗? 这些行是否都在同一个表中,或者您是否将表 1 中的行连接到表 2 中的行? 所有行都在同一个表中。我知道这听起来很奇怪,但我需要加入他们才能应用一些统计数据。如果我不将它们放在 1 行中,我会在我的统计程序中得到不同的案例,这是不好的。 【参考方案1】:

您似乎正在使用Does MS access(2003) have anything comparable to Stored procedure. I want to run a complex query in MS acceess 中提供的代码。

没有理由不应该在 sql 中输入两个字段作为一个字段,所以举个例子:

SELECT Number & Letter,
Concatenate("SELECT Letter & Alpha As FirstField FROM tblTable
     WHERE Number & Letter =""" & [Number] & [Letter] & """") as FirstFields
FROM tblT

【讨论】:

Jet SQL 中没有 Concatenate() 函数,已在引用问题的答案中指出。 SQL(语言)没有连接函数,因为它会通过创建非标量类型违反 1NF。 ACE(Microsoft Access Engine,在 Access2007 中引入以取代 Jet)具有多值数据类型,如果您想要一种引擎支持的违反 1NF 的方式;-) 正如 OP 所说,此数据用于输入统计程序。这似乎是第 3 点下使用的访问权限:***.com/questions/469799/…

以上是关于访问将行连接成单行:需要额外的条件的主要内容,如果未能解决你的问题,请参考以下文章

将行连接成 1 - 访问 2007

django中带有额外条件的左外连接

额外DC的安装

使用多个连接将行连接成字符串时遇到问题

使用 datadump 将行导出为文本

SQL 将行连接成一个字段 (DB​​2)