很抱歉再次打扰大家。我在互联网上进行了搜索,但找不到解决我的问题的方法。我在 Access 中有两个表,输出如下:
MATH 5 ENGLISH 3 ENGLISH 2 PHYSICS 5 MATH 1 MATH 3
我希望它是:
MATH 5, 1, 3 ENGLISH 3, 2 PHYSICS 5
我怎样才能做到这一点?它尝试在 Access 数据库中使用 SQL 命令,但没有任何效果。我也在 ASP.NET 中使用 GridView 寻找解决方案,但也没有成功。有没有办法实现这一点,或者我应该采取不同的方法?
我能做的最好的就是 GROUP BY 所以输出看起来像这样:
MATH 5 MATH 3 MATH 1 PHYSICS 3 PHYSICS 1 ...
最佳答案
我相信您正在寻找这样的东西 -
Join collection of objects into comma-separated string
我倾向于像您在问题中的 GROUP BY 中所做的那样拉回数据,然后连接 asp.net 代码中每个主题的数值。
或者您可以编写一个 VBA 函数在 Access 中使用来完成此操作。 Allen Browne here 已经写了一篇。您只需将代码添加到 Access 中的模块中,然后就可以在 Access 中的 SQL 查询中使用该函数。
鉴于此表结构
subjects table
id | SubjectName | Grade
---------------------------------
1 MATH 5
2 ENGLISH 3
3 ENGLISH 2
4 PHYSICS 5
5 MATH 1
6 MATH 3
以下带有 VBA 函数的 SQL
SELECT
subjects.SubjectName + ' ' +
ConcatRelated("Grade","subjects","SubjectName='" & SubjectName & "'") AS result
FROM
subjects
GROUP BY
subjects.SubjectName
产生以下结果
result
------------
ENGLISH 3, 2
MATH 5, 1, 3
PHYSICS 5
如果您想获得在问题中指定的顺序,您将需要另一个字段/表达式来进行排序
关于asp.net - 连接数据库 (MS Access) 或服务器端代码 (ASP.NET) 中的记录值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1094974/