使用Access在一行中打印多条记录

使用Access在一行中打印多条记录

问题描述:

因为我已经使用数据库已经有好几年了,所以我非常难过。这通常是最容易伤害的东西,我希望有人能够提供帮助。使用Access在一行中打印多条记录

我有一张学生名字表。我有一张父母名字的表(母亲和父亲)。我有另一张表格,将他们的关系定义为母亲和父亲,另外还有一个表格定义了跟踪所有主键及其关系的表格。我已经达到了我记得如何加入的地步,但一次只能加入一条记录。目前,我有Access 2010中的查询,打印两行,如下:

Student1 Name | Parent1 Name | Parent1 Cell 
Student1 Name | Parent2 Name | Parent2 Cell 
Student2 Name | Parent1 Name | Parent1 Cell 
etc... 

我想完成以下任务:

Student1 Name | Parent1 Name | Parent2 Name | Parent1 Cell | Parent2 Cell 
Student2 Name | Parent1 Name | Parent2 Name | Parent1 Cell | Parent2 Cell 
etc... 

我的SQL语句看起来像这样:

SELECT Student.FirstName, StudentToPersonMap.RelationshipType, Person.FirstName, 
Person.CellPhone, FROM Student INNER JOIN (Person INNER JOIN StudentToPersonMap ON 
Person.PersonID = StudentToPersonMap.PersonID) ON Student.StudentID = 
StudentToPersonMap.StudentID WHERE (((StudentToPersonMap.RelationshipType)=1 Or 
(StudentToPersonMap.RelationshipType)=2)); 

任何通过Access查询或通过SQL查询的建议都将非常受欢迎!感谢您的阅读!

您可以使用子quires。下面是一个基于SQL服务器上的其他系统中的实例,但你可以在你的应用

SELECT tblProcedures.Procedure_ID, 
     Procedure_name, 
     tReviewer_1.Proc_reviewer_name, 
     tReviewer_2.Proc_reviewer_name 
FROM tblProcedures 
INNER JOIN (select Procedure_ID, Proc_reviewer_name 
       from tblProc_reviewers 
        INNER JOIN tblProc_reviews_req 
         ON tblProc_reviews_req.Proc_reviewer_ID=tblProc_reviewers.Proc_reviewer_ID 
        WHERE tblProc_reviewers.Proc_reviewer_ID=1) as tReviewer_1 
ON tReviewer_1.Procedure_ID=tblProcedures.Procedure_ID 

INNER JOIN (select Procedure_ID, Proc_reviewer_name 
       from tblProc_reviewers 
        INNER JOIN tblProc_reviews_req 
         ON tblProc_reviews_req.Proc_reviewer_ID=tblProc_reviewers.Proc_reviewer_ID 
        WHERE tblProc_reviewers.Proc_reviewer_ID=2) as tReviewer_2 
ON tReviewer_1.Procedure_ID=tblProcedures.Procedure_ID 

使用同样的理论在获得你可能会更好做两个查询一个叫qryStudent_mothers_details和一个叫qryStudent_fathers_details。

然后,你可以将这些加入你的学生表并从那里出发。