行转列中对应单位列的处理


行转列中,列名对应的单位可以固定的写在原始的列名上

例如:

原油:WTI:期货价格:美利坚合众国(日度)(美元/吨)

 

sql:

select * from (select D.DATA_DATE AS "日期",
              
                max((case when (  I.CN_NAME='原油:WTI:期货价格:美利坚合众国(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "原油:WTI:期货价格:美利坚合众国(日度)(美元/吨)"
               ,
               max((case when (  I.CN_NAME='原油:SC主力合约:期货价格:中华人民共和国(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "原油:SC主力合约:期货价格:中华人民共和国(日度)(元/桶)",
 max((case when (  I.CN_NAME='原油:布伦特:期货价格:大不列颠及北爱尔兰联合王国(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "原油:布伦特:期货价格:大不列颠及北爱尔兰联合王国(日度)(美元/吨)",
 max((case when (  I.CN_NAME='环氧树脂:E-51:挂牌主流价:华东地区(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "环氧树脂:E-51:挂牌主流价:华东地区(日度)(元/吨)",
 max((case when (  I.CN_NAME='双酚A:挂牌主流价:华东地区(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "双酚A:挂牌主流价:华东地区(日度)(元/吨)",
 max((case when (  I.CN_NAME='丙酮:成交主流价:华东地区(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "丙酮:成交主流价:华东地区(日度)(元/吨)",
 max((case when (  I.CN_NAME='纯苯:FOB人民币价:大韩民国(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "纯苯:FOB人民币价:大韩民国(日度)(元/吨)",
max((case when (  I.CN_NAME='纯苯:FOB人民币价:亚洲:东南亚(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "纯苯:FOB人民币价:亚洲:东南亚(日度)(元/吨)",
max((case when (  I.CN_NAME='纯苯:挂牌主流价:华东地区(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "纯苯:挂牌主流价:华东地区(日度)(元/吨)",
max((case when (  I.CN_NAME='纯苯:FOB人民币价:美利坚合众国:美国海湾地区(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "纯苯:FOB人民币价:美利坚合众国:美国海湾地区(日度)(美分/加仑)",
max((case when (  I.CN_NAME='苯酚:成交主流价:华东地区(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "苯酚:成交主流价:华东地区(日度)(元/吨)",
max((case when (  I.CN_NAME='丙烯:挂牌主流价:华东地区(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "丙烯:挂牌主流价:华东地区(日度)(元/吨)",
max((case when (  I.CN_NAME='丙烯:挂牌主流价:山东省:东营港(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "丙烯:挂牌主流价:山东省:东营港(日度)(元/吨)",
max((case when (  I.CN_NAME='甲基丙烯酸甲酯:挂牌主流价:华东地区:二级市场(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "甲基丙烯酸甲酯:挂牌主流价:华东地区:二级市场(日度)(元/吨)",
max((case when (  I.CN_NAME='纯苯:FOB人民币价:鹿特丹港(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "纯苯:FOB人民币价:鹿特丹港(日度)(元/吨)",
max((case when (  I.CN_NAME='环己酮:挂牌主流价:华东地区(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "环己酮:挂牌主流价:华东地区(日度)(元/吨)",
max((case when (  I.CN_NAME='异丙醇:挂牌主流价:华东地区(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "异丙醇:挂牌主流价:华东地区(日度)(元/吨)",
max((case when (  I.CN_NAME='纯苯:CFR人民币价:中华人民共和国(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "纯苯:CFR人民币价:中华人民共和国(日度)(元/吨)",
max((case when (  I.CN_NAME='环氧氯丙烷:挂牌主流价:华东地区(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "环氧氯丙烷:挂牌主流价:华东地区(日度)(元/吨)",
max((case when (  I.CN_NAME='环氧氯丙烷:挂牌主流价:华东地区:山东省(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "环氧氯丙烷:挂牌主流价:华东地区:山东省(日度)(元/吨)",
max((case when (  I.CN_NAME='甲基异丁酮:挂牌主流价:华东地区(日度)')
 then
 D.DATA_VALUE
  else
  null
  end
   )) AS "甲基异丁酮:挂牌主流价:华东地区(日度)(元/吨)"  FROM dm.MB_OIL_INFO_0001 I 
left join dm.MB_OIL_DATA_0001 D 
on I.INDEX_CODE = D.INDEX_CODE 
WHERE I.INDEX_CODE in ('ID00174840','ID00174843','ID00174839') GROUP BY D.DATA_DATE
union all
select b.DATA_DATE AS "日期",
              
                      max((case when (   a.CN_NAME='原油:WTI:期货价格:美利坚合众国(日度)')
 then
b.DATA_VALUE
  else
  null
  end
   )) AS "原油:WTI:期货价格:美利坚合众国(日度)(美元/吨)"
               ,
                max((case when (  a.CN_NAME='原油:SC主力合约:期货价格:中华人民共和国(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "原油:SC主力合约:期货价格:中华人民共和国(日度)(元/桶)",
 max((case when (  a.CN_NAME='原油:布伦特:期货价格:大不列颠及北爱尔兰联合王国(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "原油:布伦特:期货价格:大不列颠及北爱尔兰联合王国(日度)(美元/吨)",
 max((case when (  a.CN_NAME='环氧树脂:E-51:挂牌主流价:华东地区(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "环氧树脂:E-51:挂牌主流价:华东地区(日度)(元/吨)",
 max((case when (  a.CN_NAME='双酚A:挂牌主流价:华东地区(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "双酚A:挂牌主流价:华东地区(日度)(元/吨)",
 max((case when (  a.CN_NAME='丙酮:成交主流价:华东地区(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "丙酮:成交主流价:华东地区(日度)(元/吨)",
 max((case when (  a.CN_NAME='纯苯:FOB人民币价:大韩民国(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "纯苯:FOB人民币价:大韩民国(日度)(元/吨)",
max((case when (  a.CN_NAME='纯苯:FOB人民币价:亚洲:东南亚(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "纯苯:FOB人民币价:亚洲:东南亚(日度)(元/吨)",
max((case when (  a.CN_NAME='纯苯:挂牌主流价:华东地区(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "纯苯:挂牌主流价:华东地区(日度)(元/吨)",
max((case when (  a.CN_NAME='纯苯:FOB人民币价:美利坚合众国:美国海湾地区(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "纯苯:FOB人民币价:美利坚合众国:美国海湾地区(日度)(美分/加仑)",
max((case when (  a.CN_NAME='苯酚:成交主流价:华东地区(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "苯酚:成交主流价:华东地区(日度)(元/吨)",
max((case when (  a.CN_NAME='丙烯:挂牌主流价:华东地区(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "丙烯:挂牌主流价:华东地区(日度)(元/吨)",
max((case when (  a.CN_NAME='丙烯:挂牌主流价:山东省:东营港(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "丙烯:挂牌主流价:山东省:东营港(日度)(元/吨)",
max((case when (  a.CN_NAME='甲基丙烯酸甲酯:挂牌主流价:华东地区:二级市场(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "甲基丙烯酸甲酯:挂牌主流价:华东地区:二级市场(日度)(元/吨)",
max((case when (  a.CN_NAME='纯苯:FOB人民币价:鹿特丹港(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "纯苯:FOB人民币价:鹿特丹港(日度)(元/吨)",
max((case when (  a.CN_NAME='环己酮:挂牌主流价:华东地区(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "环己酮:挂牌主流价:华东地区(日度)(元/吨)",
max((case when (  a.CN_NAME='异丙醇:挂牌主流价:华东地区(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "异丙醇:挂牌主流价:华东地区(日度)(元/吨)",
max((case when (  a.CN_NAME='纯苯:CFR人民币价:中华人民共和国(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "纯苯:CFR人民币价:中华人民共和国(日度)(元/吨)",
max((case when (  a.CN_NAME='环氧氯丙烷:挂牌主流价:华东地区(日度)')
 then
b.DATA_VALUE
  else
  null
  end
   )) AS "环氧氯丙烷:挂牌主流价:华东地区(日度)(元/吨)",
max((case when (  a.CN_NAME='环氧氯丙烷:挂牌主流价:华东地区:山东省(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "环氧氯丙烷:挂牌主流价:华东地区:山东省(日度)(元/吨)",
max((case when (  a.CN_NAME='甲基异丁酮:挂牌主流价:华东地区(日度)')
 then
 b.DATA_VALUE
  else
  null
  end
   )) AS "甲基异丁酮:挂牌主流价:华东地区(日度)(元/吨)"  FROM dm.MB_HG_INFO_0001 a 
left join dm.MB_HG_DATA_0001 b 
on a.INDEX_CODE = b.INDEX_CODE 
WHERE a.INDEX_CODE in ('ID00112380',
'ID00112308',
'ID00112396',
'ID00112384',
'ID00112384',
'ID00112388',
'ID00119544',
'ID00119200',
'ID00119208',
'ID00118864',
'ID00119144',
'ID00121988',
'ID00121088',
'ID00122712',
'ID00121128',
'ID00120424',
'ID00120296',
'ID00120400',
'ID00120392') GROUP BY b.DATA_DATE)  
order by "日期" desc
 

如图:

行转列中对应单位列的处理_第1张图片

 

 

 

你可能感兴趣的:(行转列中对应单位列的处理)