zoukankan      html  css  js  c++  java
  • 多级分类汇总

    实例

     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 
    

      

  • 相关阅读:
    js html5 绘制折线图
    软件资源下载链接
    二维vector容器读取txt坐标
    C++ opencv 滑动条 Trackbary以及处理三通道和单通道图像
    C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind
    opencv-将分离合并图像(Red通道>125置255<=置0)
    C++ vector类型要点总结(以及各种algorithm算法函数)
    C++容器嵌套实现动态二维数组(Vector2D)
    用vector实现二维向量
    C++标准库vector及迭代器
  • 原文地址:https://www.cnblogs.com/laojiefang/p/2450504.html
Copyright © 2011-2022 走看看