2011-12-25 72 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