簡體   English   中英

MS訪問2010 SQL查詢幫助

[英]MS access 2010 SQL query Help

我怎樣才能從這個表格中轉出一張桌子:

S_ID          SUBJECT          MARK
1             English          90
1             Math             40
1             Computer         30
2             English          85
2             Math             10
2             Computer         06
3             English          10
3             Math             20
3             Computer         40

到這個表格

S_ID       English        Math         Computer
1          90             40           30
2          85             10           06
3          10             20           40

使用 SQL 代碼,

我正在使用 MS Access 2010,

謝謝

SELECT S_ID ,
       MAX(CASE WHEN subject = 'English' THEN mark ELSE null END) AS English,
       MAX(CASE WHEN subject = 'Math' THEN mark ELSE null END) AS Math,
       MAX(CASE WHEN subject = 'Computer' THEN mark ELSE null END) AS Computer
FROM myTable
GROUP BY S_ID 

您需要一個交叉表查詢,該查詢將為每個主題生成一列;

TRANSFORM Sum(MARK) AS TotalMark
SELECT 
   S_ID
FROM marks
   GROUP BY S_ID
PIVOT SUBJECT;

如果這是一次性練習,您可以按順序使用許多語句:如下所示:

insert into new_table
select distinct s_id, 0,0,0
from old_table

然后一系列更新

update new_table n
set english = (select english from old_table where s_id = n.s_id )
where s_id = n.s_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM