close

同一個Row 有3組 column 要轉成 Header & Detail 如下 

                                                 

                  

1 . UNPIVOT 轉

   select ZA001,ZA002,ZA002S,meal_a
from 
(
select ZA001,ZA002,ZA003,ZA004,ZA005,ZA006,ZA007,ZA008,ZA009,ZA010,ZA011,ZA012,ZA013,ZA014,ZA015,ZA016,ZA017,ZA018,ZA019,ZA020,ZA021,ZA022,ZA023
,ZA024,ZA025,ZA026,ZA027,ZA028,ZA029,ZA030,ZA031,ZA032,ZA033  
from PALZA where ZA002=substring(convert(nvarchar(8),getdate(),112),1,6))P
UNPIVOT
 (meal_a for ZA002S 
 in
 (ZA003,ZA004,ZA005,ZA006,ZA007,ZA008,ZA009,ZA010,ZA011,ZA012,ZA013,ZA014,ZA015,ZA016,ZA017,ZA018,ZA019,ZA020,ZA021,ZA022,ZA023
 ,ZA024,ZA025,ZA026,ZA027,ZA028,ZA029,ZA030,ZA031,ZA032,ZA033
)) as unpvt

執行結果

 

再調整一下把ZA002S 轉換成日期  select ZA001,ZA002,cast(substring(ZA002S,3,3) as int)-2 as 'day_no',meal_a

這樣第一組就轉出來了

2.重複 ZA065-ZA095  ZA096-ZA126

  在join 起來  就可以

 

3 .再利用 distinct 將轉好的資料取出Header

就可以開始來塞資料了 

arrow
arrow
    文章標籤
    sql pivot unpivot
    全站熱搜
    創作者介紹
    創作者 JosephChou 的頭像
    JosephChou

    Joseph A-Sa-BLue

    JosephChou 發表在 痞客邦 留言(0) 人氣()