sql 行转列问题

 

题目:  
 下表Tproduct某产品在各城市各月销量情况
  

City_name
Month_no(月)
Qut__qty(台)
杭州
9
100
杭州
10
120
上海
9
130
上海
10
140
…..

 
请写sql实现 如下查询
 City       9月销量     10月销量
 杭州          100        120
 上海          130        140
   。。。           。。        。。
 
 
答案一 ;
select    v.city_name,
                 sum ( decode ( v.month_no,9 ,v.qut__qty,0))as M9 ,
                 sum ( decode ( v.month_no,10,v.qut__qty,0))as M10 
                
       from Tproduct v 
       group by v.city_name 
答案二:
     select v.city_name,
                 nvl (sum ( case when v.month_no = 9 then v.qut__qty end ) ,0)as M9 ,
                 nvl (sum ( case when v.month_no = 10 then v.qut__qty end ),0)as M10
       from Tproduct  v 
       group by v.city_name

(select  fpc.partno,
                 sum ( decode ( fpc.org_id,21385 ,fpc.qty,0))as  qty1 ,
                 sum ( decode ( fpc.org_id,21383 ,fpc.qty,0))as  qty2,
                 fpc.qty,fpc.consumption_date
               
       from fact_parts_consumption fpc
    group by fpc.partno,fpc.qty,fpc.consumption_date)

  ( select fpc.partno, fpc.qty, fpc.org_id,
                 nvl (sum ( case when fpc.org_id = 21383 then fpc.qty end ) ,0)as Qty21383 ,
                 nvl (sum ( case when fpc.org_id = 21385 then fpc.qty end ),0)as Qty21385
       from fact_parts_consumption fpc
       group by fpc.partno, fpc.qty, fpc.org_id)
   
     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值