2011-12-25 74 views
0

我在这些领域子查询在Access

Student: 
ID(PK) Name Family Tel 

Lesson: 
ID StudentRef(FK(Student)) Name Score 

访问2个表假设我们有这些记录

Student : 
1  Tom  Allen  09370045230 
2  Jim  leman  09378031380 

Lesson: 

1  1  Math   18 
2  1  Geography  20 
3  2  Economic  15 
4  2  Math   12 

我怎么能写结果会是这样(2场)查询?

Tom  Math : 18 , Geography 20 
Jim  Economic :15 , Math :12 
+0

这可能有所帮助:http://stackoverflow.com/questions/8601643/access-sql-query-to-concatenate-rows/8603245#8603245 – Fionnuala 2011-12-25 20:14:31

+0

适当[示例代码](http://sscce.org/) (这里是SQL语句)比任何ad hoc模式和样本数据格式更有用。请使用'CREATE TABLE'和'INSERT ... VALUES'作为样本。所需的结果不需要作为示例代码呈现,因为结果是代码的输出,而不是代码本身。 – outis 2012-03-26 00:41:58

回答

2
SELECT s.Name, l.Name, l.Score 
    INNER JOIN tbl_lessons as l ON s.student_id = l.student_id 
FROM tbl_students as s 

这不会给你的格式,但它会得到你的数据。

+0

谢谢,但我需要的格式,我编了 – 2011-12-25 15:02:03

+0

没有人可以帮助我?我可以在我的申请中解决这个问题,但这对我来说很简单 – 2011-12-25 19:09:47

0

问题中最棘手的部分是如何在子查询中聚合字符串。 MS Access没有适用于字符串的任何聚合函数(Count()除外),并且无法定义您自己的函数。这意味着你不能只得到想要的“主题:分数,主题:分数”concanetation。只要你没有,你可以轻松地采取由Corith Malin提供的答案。

+0

感谢Alexander Galkin和Corith Malin。我将在我的DataTable应用程序中解决它。 – 2011-12-26 07:46:16