原始資料如下( 區域分,課程有幾百個 ):
課程式號 課程名稱 考試時間 考試地點 學生位置 學生人數
0001 管理會計 13:00-15:00 三教202 境外 3
0001 管理會計 13:00-15:00 三教202 在滬 1
0001 管理會計 13:00-15:00 三教202 在校 2
0002 概率論 13:00-15:00 三教203 境外 4
0002 概率論 13:00-15:00 三教203 在滬 1
求一句select ,求出資料如下:
0001 境外:3 在滬:1 在校: 2
0002 境外:4 在滬:1 在校: 0
謝謝~~
uj5u.com熱心網友回復:
CREATE TABLE #TA(課程式號 VARCHAR(20),課程名稱 varchar(50),學生位置 VARCHAR(20), 學生人數 INT)INSERT INTO #TA values('0001','管理會計','境外',3)
INSERT INTO #TA values('0001','管理會計','在滬',1)
INSERT INTO #TA values('0001','管理會計','在校',2)
INSERT INTO #TA values('0002','概率論','境外',4)
INSERT INTO #TA values('0002','概率論','在滬',1)
select * from
(
select
a.課程式號,a.學生位置,
a.學生位置+':'+CAST(a.學生人數 as varchar(5)) [學生位置:數量]
from #TA a
) a1
pivot
(
max([學生位置:數量])
for [學生位置] in ([境外],[在滬],[在校])
) b1
order by 課程式號
uj5u.com熱心網友回復:
WITH CTE
AS
(SELECT A.學生位置,B.課程式號,C.課程名稱,ISNULL(C.學生人數,0) AS 學生人數
FROM (SELECT DISTINCT 學生位置 FROM TABLE) AS A
JOIN (SELECT DISTINCT 課程式號 FROM TABLE) AS B ON 1=1
LEFT JOIN TABLE C ON A.學生位置=C.學生位置 AND B.課程式號=C.課程式號)
SELECT DISTINCT 課程式號,
STUFF((SELECT ' '+學生位置+':'+CAST(學生人數 AS VARCHAR) FROM CTE WHERE A.課程式號=課程式號 FOR XML PATH('')),1,1,'')
FROM CTE A
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/231322.html
標籤:應用實例
上一篇:Oracle資料替換
