2011-03-17 107 views
0

因爲我已經使用數據庫已經有好幾年了,所以我非常難過。這通常是最容易傷害的東西,我希望有人能夠提供幫助。使用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查詢的建議都將非常受歡迎!感謝您的閱讀!

回答

0

您可以使用子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。

然後,你可以將這些加入你的學生表並從那裏出發。