zoukankan      html  css  js  c++  java
  • sql行合并

    如图1:

    如图2:

    如图3:

    图1和图2是渠道"WH00026"某天的相关数据,怎么把它合并一条数据呢如成图3的效果?有两种方法:
    第一种: 用表变量

     1 declare @ac table
     2   (
     3     channelid varchar(100),
     4     pmoney decimal(18,2),
     5     ptype tinyint,
     6     inday varchar(50)
     7   )
     8   insert into @ac(channelid,pmoney,ptype,inday)
     9   select a.channelid,a.pmoney,a.ptype,a.inday
    10   from(
    11   select channelid,sum(totalFee) as pmoney,inday,1 as ptype from orderCPS where inday='2016-10-13' and channelid='WH00026' and comOrderStatus is null group by channelid,inday
    12   union all
    13   select channelid,sum(totalFee) as pmoney,inday,2 as ptype from orderCPS where inday='2016-10-13' and channelid='WH00026' and orderStatus=0 group by channelid,inday
    14   ) a
    15 
    16 
    17   declare @bc table
    18   (
    19     channelid varchar(100),
    20     pmoney decimal(18,2),
    21     pcount int,
    22     ptype tinyint,
    23     inday varchar(50)
    24   )
    25   insert into @bc(channelid,pmoney,pcount,ptype,inday)
    26   select a.channelid,a.pmoney,a.pcount,a.ptype,a.inday
    27   from(
    28  select channelid,count(*) as pcount,sum(totalFee) as pmoney,1 as ptype ,inday from myOrderCPS  where inday='2016-10-13' and channelid='WH00026'   group by channelid,inday 
    29  union all
    30  select channelid,count(*) as pcount,sum(totalFee) as pmoney,2 as ptype ,inday from OrderCPS  where inday='2016-10-13' and channelid='WH00026' and orderStatus=0  group by channelid,inday
    31 
    32   ) a
    33 
    34 select a.*,b.* from (
    35  select channelid,
    36  max(case ptype when 1 then pmoney end) as '对内金额',
    37  max(case ptype when 2 then pmoney end) as '对外金额',
    38  inday
    39 from @ac
    40 group by channelid,inday
    41 ) a join
    42 (
    43  select channelid,
    44  max(case ptype when 1 then pcount end) as '请求数',
    45  max(case ptype when 2 then pcount end) as '成功数',
    46  max(case ptype when 1 then pmoney end) as '对内金额',
    47  max(case ptype when 2 then pmoney end) as '对外金额',
    48  inday
    49 from @bc
    50 group by channelid,inday
    51 ) b on a.channelid=b.channelid and a.inday=b.inday
    View Code

    第二种:用with cte 短语:

     1 with ac as
     2 (
     3   select a.channelid,a.pmoney,a.ptype,a.inday
     4   from(
     5   select channelid,sum(totalFee) as pmoney,inday,1 as ptype from orderCPS where inday='2016-10-13' and channelid='WH00026' and comOrderStatus is null group by channelid,inday
     6   union all
     7   select channelid,sum(totalFee) as pmoney,inday,2 as ptype from orderCPS where inday='2016-10-13' and channelid='WH00026' and orderStatus=0 group by channelid,inday
     8   ) a
     9 ),
    10 bc as
    11 (
    12  select a.channelid,a.pmoney,a.pcount,a.ptype,a.inday
    13  from(
    14  select channelid,count(*) as pcount,sum(totalFee) as pmoney,1 as ptype ,inday from myOrderCPS  where inday='2016-10-13' and channelid='WH00026'   group by channelid,inday 
    15  union all
    16  select channelid,count(*) as pcount,sum(totalFee) as pmoney,2 as ptype ,inday from OrderCPS  where inday='2016-10-13' and channelid='WH00026' and orderStatus=0  group by channelid,inday
    17   ) a
    18 )
    19 select a.*,b.* from (
    20  select channelid,
    21  max(case ptype when 1 then pmoney end) as '对内金额',
    22  max(case ptype when 2 then pmoney end) as '对外金额',
    23  inday
    24 from ac
    25 group by channelid,inday
    26 ) a join
    27 (
    28  select channelid,
    29  max(case ptype when 1 then pcount end) as '请求数',
    30  max(case ptype when 2 then pcount end) as '成功数',
    31  max(case ptype when 1 then pmoney end) as '对内金额',
    32  max(case ptype when 2 then pmoney end) as '对外金额',
    33  inday
    34 from bc
    35 group by channelid,inday
    36 ) b on a.channelid=b.channelid and a.inday=b.inday
    View Code

          


  • 相关阅读:
    实现JavaScript自定义函数的整合、链式调用及类的封装
    jQuery事件
    jQuery特效
    jQuery基础细节
    CSS3盒模型
    主流清浮动方法
    JavaScript 执行环境及作用域
    JavaScript 参数传递与变量复制
    PHP雪花背景验证码
    Linkis 0.9.2 版本发布
  • 原文地址:https://www.cnblogs.com/mrzhoushare/p/5957954.html
Copyright © 2011-2022 走看看