• 多级分类汇总


    实例

     select  FHeadSelfB0940	工程项目,
    v2.Fname  部门,v1.FNumber as 物料代码,v1.FName 物料名称,v1.FModel 规格,t4.FName 计量单位,sum(t1.FQty) 数量,sum(t1.FAmount) 金额
      from icstockbillentry t1
     left join icstockbill t2 on t1.Finterid=t2.Finterid   
     left join t_icitemcore v1 on t1.FItemID=v1.FItemID
    left join t_Department v2 on t2.FDeptID=v2.FItemID
    left join t_measureunit t4 on t1.FUnitID = t4.fitemid
     where FTrantype=29
     group by FHeadSelfB0940,v2.Fname,v1.FNumber,v1.FName,v1.FModel,t4.FName  
     ORDER BY FHeadSelfB0940,v2.Fname 
     --with rollup having not (  grouping(v1.FNumber) =1 or grouping(v1.FName) = 1 OR GROUPING(v1.FModel)=1 or GROUPING(t4.FName)=1  )
     --or grouping(FHeadSelfB0940)=1 or grouping(v2.Fname)=1 
    COMPUTE SUM(SUM(t1.FQty)),sum(sum(t1.FAmount)) BY FHeadSelfB0940,v2.Fname 
    COMPUTE SUM(SUM(t1.FQty)),sum(sum(t1.FAmount))
    

      多级分类汇总

    select case when grouping(t5.fname) = 1 then '总计'  else case when grouping(t3.fnumber) = 1 then ''+ t5.fname + '小计' else t5.fname end end  as 业务员,
    w1.fbillno as 采购申请单号,sum(w2.fqty) as 申请数量,t1.fbillno as 采购订单号,t3.fnumber as 物料代码,
    t3.fname as 物料名称,t3.fmodel as 规格,t4.fname as 单位,cast(sum(t2.fqty) as decimal(10,2)) as 订单数量,cast(sum(x2.fqty + isnull(x4.fqty,0))   as decimal(10,2)) as 入库数量 ,case when sum(t2.fqty - isnull(x2.fqty,0) + isnull(x4.fqty,0))< 0 then 0 else cast(sum(t2.fqty - isnull(x2.fqty,0) + isnull(x4.fqty,0)) as decimal(10,2)) end  as 订单余量 ,
    t2.fdate as 计划交货日期,case when t1.fstatus = 3 then max(x3.fdate) else null end as 实际结案日期,cast(sum(x2.famount)/sum(x2.fqty)  as decimal(10,2)) as 单价,cast(sum(x2.famount) as decimal(10,2)) as 金额,w3.fname as 供应商
    from poorder t1 inner join poorderentry t2 on t1.finterid = t2.finterid
    inner join t_icitem t3 on t2.fitemid = t3.fitemid inner join t_measureunit t4 on t3.funitid = t4.fitemid
    left join t_emp t5 on t1.fempid = t5.fitemid
    left join porequest w1 on t2.FSourceInterId = w1.finterid
    left join porequestentry w2 on w1.finterid = w2.finterid and   t2.FSourceEntryID = w2.fentryid
    left join t_supplier w3 on t1.fsupplyid = w3.fitemid
    left join icstockbillentry x2 on x2.fsourceinterid = t2.finterid and x2.fsourceentryid = t2.fentryid and x2.fsourcetrantype = 71
    left join icstockbill x3 on x2.finterid = x3.finterid
    left join icstockbillentry x4 on  x4.fsourceinterid = x2.finterid and x4.fsourceentryid = x2.fentryid  and x4.fsourcetrantype = 1
    --where (t3.fnumber = @winumber or @winumber='') and (t5.fname = @wemp or @wemp='') and  (w3.fname = @wsupply or @wsupply='') and ((t1.fdate BETWEEN @date1 and @date2  and x2.fqty <>0 ) or (t1.fstatus in(1,2) and t1.fdate <  dateadd(month,-3,getdate())))
    group by t5.fname,w1.fbillno,t1.fbillno,t3.fnumber,t3.fname,t3.fmodel,t4.fname,t2.fdate,w3.fname,t1.fstatus
    with rollup
    having not(  grouping(t3.fnumber) =1 or grouping(t3.fname) = 1 or grouping(t3.fmodel) = 1
     or grouping(t4.fname) = 1 or grouping (t2.fdate) = 1 or grouping(w3.fname)=1 or grouping(t1.fstatus) =1)
    or grouping(t5.fname) = 1 or grouping(w1.fbillno) =1 or grouping(t1.fbillno) = 1
    

      

     select case when grouping(FHeadSelfB0940) = 1 then '总计'   
    			else case when grouping(v2.Fname)=1 THEN ''+ v2.Fname + '小计' 
    			else FHeadSelfB0940	end 
    		end  as 工程项目,
    v2.Fname  部门,v1.FNumber as 物料代码,v1.FName 物料名称,v1.FModel 规格,t4.FName 计量单位,sum(t1.FQty) 数量,sum(t1.FAmount) 金额
      from icstockbillentry t1
     left join icstockbill t2 on t1.Finterid=t2.Finterid   
     left join t_icitemcore v1 on t1.FItemID=v1.FItemID
    left join t_Department v2 on t2.FDeptID=v2.FItemID
    left join t_measureunit t4 on t1.FUnitID = t4.fitemid
     where FTrantype=29
     group by FHeadSelfB0940,v2.Fname,v1.FNumber,v1.FName,v1.FModel,t4.FName  with rollup
     having not (  grouping(v1.FNumber) =1 or grouping(v1.FName) = 1 OR GROUPING(v1.FModel)=1 or GROUPING(t4.FName)=1  )
     or grouping(FHeadSelfB0940)=1 or grouping(v2.Fname)=1 
    

      

  • 相关阅读:
    4、pytest -- fixtures:明确的、模块化的和可扩展的
    CentOS -- 新建用户并使能密钥登录
    3、pytest -- 编写断言
    2、pytest -- 使用和调用
    1、pytest -- 安装和入门
    《Fluent Python》 -- 一个关于memoryview例子的理解过程
    SecureCRT 连接 Centos7.0 (NAT模式),且能连接公网。
    SecureCRT 连接 Centos7.0 (桥接模式),且能连接公网。
    Centos7.0 三种网络适配器
    Centos 7.0 界面
  • 原文地址:https://www.cnblogs.com/laojiefang/p/2450504.html
Copyright © 2020-2023  润新知