各位前輩好 最近碰到個SQL Server 合併雙表多列整合的問題
表一: aaa_master
表二: aaa_detai
邏輯是aaa_master.id = aaa_detail.master_record_id
而每一組相同的 aaa_detail.master_record_id 所含的 vital_type_id 都只會有一次
原始資料表aaa_detail內是多列組合,我想整合成一列如下圖DEMO結果
隨文附上兩個範例資料表,跪求先進踴躍參與討論或不吝解答
試看看..
SELECT ID, MEASURE_TIME
,MAX(CASE WHEN B.VITAL_TYPE_ID = '0001' THEN B.VALUE ELSE NULL END) "0001"
,MAX(CASE WHEN B.VITAL_TYPE_ID = '0002' THEN B.VALUE ELSE NULL END) "0002"
.....
FROM AAA_MASTER A
JOIN AAA_DETAIL B
ON A.id = B.master_record_id
GROUP BY ID, MEASURE_TIME
SQLServer 你可以使用 PIVOT
樞紐分析
SELECT *
FROM (
SELECT a.measure_time,B.master_record_id,B.[value],b.sugar_period,b.vital_type_id
FROM AAA_MASTER A
JOIN AAA_DETAIL B ON A.id = B.master_record_id
) t
PIVOT(
SUM(t.[value]) FOR t.vital_type_id IN ([0001],[0002]....)
) p1
Note : PIVOT
中間我使用SUM
聚集函式 原因是可能同一天 同vital_type_id
有兩筆value
要把他們加總