在 Access SQL 查询中将行值转换为列

Posted

技术标签:

【中文标题】在 Access SQL 查询中将行值转换为列【英文标题】:Convert row values to columns in Access SQL query 【发布时间】:2015-10-15 16:30:31 【问题描述】:

我在 Access 表中有两列

Idea_Code, "Dependency_Name" 
I66666       TEST1
I66666       TEST2
I66666       TEST3
I77777       TEST34

我希望看到的结果是:

Idea_Code  Dependency_Name1  Dependency_Name2  Dependency_Name3 ------ETC
I66666         TEST1               TEST2          TEST3 
I77777         TEST34

一个想法代码可以有多个依赖名。为了消除重复,我需要将依赖项名称显示为可以是一对多关系的列。感谢您抽出宝贵时间。

我使用了这段代码,但它在访问查询中没有按照我希望的方式工作。

TRANSFORM First(DA.dependency_name) AS dependency_name
SELECT DA.idea_code
FROM tbl_IdeasDependencies AS DA

GROUP BY DA.idea_code

PIVOT DA.dependency_name;

【问题讨论】:

***.com/questions/15745042/… 试试看。 谢谢 Duston,我的 qry 在 Access 数据库中,该解决方案对我不起作用。 您是否尝试过在 SQL 视图中开发查询? 【参考方案1】:

首先你创建一个新的列row_number,这里是SAMPLE的方法

你会有

Idea_Code, "Dependency_Name", row_number
I66666       TEST1                1
I66666       TEST2                2
I66666       TEST3                3
I77777       TEST34               1

其次你创建一个category

SELECT 'Dependency_Name' + row_number as category

现在你有

Idea_Code, "Dependency_Name", row_number, category
I66666       TEST1                1       Dependency_Name1
I66666       TEST2                2       Dependency_Name2        
I66666       TEST3                3       Dependency_Name3
I77777       TEST34               1       Dependency_Name1

最后你使用category 和原始"Dependency_Name" 中的值执行PIVOT

【讨论】:

这是我目前所拥有的 Juan.SELECT DA.idea_code, DA.dependency_name, COUNT(*) AS row_number FROM tbl_IdeasDependencies AS DA INNER JOIN tbl_IdeasDependencies AS DA2 ON (DA2.idea_code = DA.idea_code ) AND (DA2.dependency_name 你在我的回答中做了第 1 步和第 2 步吗?我无法为您制作整个代码,因为我没有所有数据。我会回答你必须使它工作的任何问题。 感谢 Juan Carlos Oropeza 我能够修复它。您的解决方案效果很好。 @Birinder 请记得点赞并采纳为正确答案

以上是关于在 Access SQL 查询中将行值转换为列的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server 或 C# 代码中将行转换为列

在 SQL Server 中将行值转换为列名

在 SQL 中将行转换为列

如何在sql中将行转换为列

MS Access SQL 将行转换为列

在子查询中将行转换为列