2017-04-18 62 views
0

我使用這個SQL:透視組合框表

TRANSFORM Max(table1.[quiz]) AS MaxOfquiz 
SELECT table1.[quizdate], table1.[studentname], Max(table1.[quiz]) AS [Total Of 
quizscores] 
FROM table1 
GROUP BY table1.[quizdate], table1.[studentname] 
PIVOT table1.[coursename]; 

要嘗試並轉動組合框表:

表1

ID quizdate coursename studentname quiz 
1 02-Jan-21 math  john  100  
2 03-Feb-21 science  joe   99  
3 04-Mar-21 physics  monica  97  
4 05-Apr-20 language mike  88 

凡coursename是一個下拉(數學,科學,物理,語言)分成

表2

studentname math science physics language 
john  100 
joe    99 
monica     97 
mike        88 

我得到這些結果:

quizdate studentname Total Of quizscores 1 2 3 4 
4/4/2016 moe   88       88 
1/1/2017 john  100        100 
2/2/2017 joe   99      99  
3/3/2017 monica  97     97   

似乎COMBOX箱coursename不能轉動作爲列名,但 用數字代替。任何人都可以解釋我如何產生正確的結果?

+2

爲什麼你甚至想要使用CROSSTAB查詢作爲組合框的RowSource? – June7

回答

0

你自己回答吧:

凡coursename是一個下拉(數學,科學,物理,語言)

所以,在查詢中,從字段中的值將是ID這些「下拉」。

要獲取coursenames,請將它們移到單獨的表格中,並將其與表格1在查詢中聯接。

+0

原因是由於這些coursenames是從另一個表中查找下拉(組合框)。因此,coursename數據類型是數字,並且由於這種關係,不能將其更改爲短文本。 – user7865035

+0

,我需要使用數據透視表,由於我需要創建一個報告,如\t學生姓名\t課程名稱\t課程名稱\t課程名稱\t課程名稱\t課程名稱\t課程名稱 \t日出席\t日期出席理由\t日期出席\t日期出席\t日期出席\t出席日期 \t \t測驗分數(S)\t測驗分數(S)\t測驗分數(S)\t測驗分數(S)\t測驗分數(S)\t測驗分數 – user7865035

+0

那麼,加入那個持有coursenames的「另一張桌子」吧。 – Gustav