SQL Server 使用union all查询多个条件数据合并分组显示,同比统计

时间:2022-06-01 20:43:40
    select CONVERT(char(7),a.created_yearmonth,20) created_yearmonth,
        a.countaccount countaccount,
        a.yxsl yxsl,
        a.sccdsl sccdsl,
        a.zccdsl zccdsl  
    from 
    (--总数
    select         CONVERT(char(7),account.created,20) created_yearmonth,
        count(1) countaccount,
        null yxsl,
        null sccdsl,
        null zccdsl  
    from account account
    left join org_dep iddep 
    on iddep.id=account.iddep
    left join org_employee idowner 
    on idowner.id=account.idowner 
    group by        CONVERT(char(7),account.created,20)        
        union all
        --有效    
    select         CONVERT(char(7),account.created,20) created_yearmonth,
        null countaccount,
        count(1)  yxsl,
        null sccdsl,
        null zccdsl  
    from account account
    left join org_dep iddep 
    on iddep.id=account.iddep
    left join org_employee idowner 
    on idowner.id=account.idowner 
    where account.emshzt in( 'bad4d977a06604e2ec5621bd0285eef2') 
    group by        CONVERT(char(7),account.created,20)
        union all
        --首次成交    
    select         CONVERT(char(7),account.created,20) created_yearmonth,
        null countaccount,
        null yxsl,
        count(1) sccdsl,
        null zccdsl  
    from account account
    left join org_dep iddep 
    on iddep.id=account.iddep
    left join org_employee idowner 
    on idowner.id=account.idowner 
    where account.dbcdcs = 1
    group by        CONVERT(char(7),account.created,20)
        union all
        --再次成交    
    select         CONVERT(char(7),account.created,20) created_yearmonth,
        null countaccount,
        null yxsl,
        null sccdsl,
        count(1) zccdsl  
    from account account
    left join org_dep iddep 
    on iddep.id=account.iddep
    left join org_employee idowner 
    on idowner.id=account.idowner 
    where account.dbcdcs > 1
    group by        CONVERT(char(7),account.created,20)
    ) a