[英]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.