SELECT CASE WHEN GROUPING(F1) = 1 THEN '总计'
WHEN GROUPING(F1) = 0 AND GROUPING(F2) = 1 THEN  F1+'合计'
WHEN GROUPING(F1) = 0 AND GROUPING(F2) = 0 AND GROUPING(F3) = 1 THEN  F1+'的'+F2+'小计'
ELSE F1
        END AS F1 ,
        CASE WHEN GROUPING(F3) = 1 THEN '' ELSE F2
        END AS F2 ,
        ISNULL(F3, '') AS F3 ,
        SUM(F4) AS F4,
SUM(F5) AS F5
FROM  TB
GROUP BY F1,F2,F3 WITH ROLLUP;

示例一

select deptName,routeName,vehicleName, sum(CCW1) as CCW1 from View_LocalConsumeDetailReport GROUP BY deptName,routeName,vehicleName with rollup

实例二

select case when grouping(deptName)=1 then '合计' else deptName end as deptName, case when grouping(deptName)=0 and grouping(vehicleName)=1 then '小计'  else vehicleName end as vehicleName,driverName ,sum(CTW1) as CTW1 from View_TodayDriverByCollectDate group by deptName,vehicleName,driverName with rollup having (grouping(deptName)=1) or (grouping(deptName)=0 and grouping(vehicleName)=1) or (grouping(deptname)= 0 and grouping(vehicleName)=0 and grouping(drivername)=0)

示例三

SELECT     CASE WHEN grouping(deptName) = 1 THEN '合计' WHEN grouping(deptName) = 0 AND grouping(routeName) = 1 THEN '小计' else deptName END AS deptName,
CASE WHEN grouping(deptName) = 0 AND grouping(routeName) = 0 and grouping(vehicleName)=1 THEN '小计' ELSE routeName END AS routeName,
ISNULL(vehicleName, '') AS vehicleName,
 SUM(CTW1) AS CTW1, SUM(CCW1) AS CCW1,
                      SUM(dbo.F2Y(CCM1)) AS CCM1, SUM(dbo.F2Y(CFM1)) AS CFM1
FROM         View_ConsumeDetailReport AS mcis
WHERE     (1 = 1) AND (CONVERT(varchar(100), reportDate, 23) >= '2014-11-01') AND ('2014-11-30' >= CONVERT(varchar(100), reportDate, 23))
GROUP BY deptName, routeName, vehicleName WITH ROLLUP

示例四

SELECT
 CASE
WHEN grouping(deptName)= 1 THEN
 '合计'
WHEN grouping(deptName)= 0
AND grouping(routeName)= 1 THEN
 '小计'
ELSE
 deptName
END AS deptName,
 CASE
WHEN grouping(deptName)= 0
AND grouping(routeName)= 0
AND grouping(vehicleName)= 1
AND grouping(driverName)= 1
AND grouping(reportDate)= 1 THEN
 '小计'
ELSE
 routeName
END AS routeName,
 mcis.vehicleName AS vehicleName,
 mcis.driverName AS driverName,
 mcis.reportDate AS reportDate,
 SUM(WMCCT1)AS WMCCT1,
 SUM(WMMCT1)AS WMMCT1,
 SUM(WMCCT2)AS WMCCT2,
 SUM(WMMCT2)AS WMMCT2,
 SUM(WMCCT3)AS WMCCT3,
 SUM(WMMCT3)AS WMMCT3,
 SUM(WMCCT1 + WMCCT2 + WMCCT3)AS total,
 SUM(WMMCT1 + WMMCT2 + WMMCT3)AS totalMoney
FROM
 view_dayTotalArchivedReport mcis
WHERE
 1 = 1
AND mcis.reportDate >= '2017-06-01'
AND '2017-08-04' >= mcis.reportDate
AND mcis.deptOID IN('0')
GROUP BY
 deptName,
 routeName,
 vehicleName,
 driverName,
 reportDate WITH ROLLUP

示例五

select case when grouping(RechargeCentersName)=1 then '合计' when grouping(RechargeCentersName)=0 and grouping(terminalsName)=1
and grouping(operatorName)=1 and grouping(summaryDate)=1 then '小计' when grouping(RechargeCentersName)=0
and grouping(terminalsName)=0 and grouping(operatorName)=0 and grouping(summaryDate)=0 then mcis.RechargeCentersName else 'nothing'
end as RechargeCentersName,mcis.terminalsName as terminalsName,mcis.operatorName as operatorName,mcis.summaryDate as summaryDate,
ISNULL(sum(mcis.issueCount), 0) as issueCount,dbo.F2Y(ISNULL(sum(mcis.depositeMoney), 0)) as depositeMoney,
ISNULL(sum(mcis.wRechargeCount), 0) as wRechargeCount,dbo.F2Y(ISNULL(sum(mcis.wRechargeMoney), 0)) as wRechargeMoney,
ISNULL(sum(mcis.disCountRechargeCount), 0) as disCountRechargeCount,dbo.F2Y(ISNULL(sum(mcis.disCountRechargeMoney), 0))
as disCountRechargeMoney,ISNULL(sum(mcis.creditChangeCount), 0) as creditChangeCount,ISNULL(sum(mcis.creditNums), 0) as creditNums,
ISNULL(sum(mcis.mRechargeCount), 0) as mRechargeCount,dbo.F2Y(ISNULL(sum(mcis.mRechargeMoney), 0)) as mRechargeMoney,
ISNULL(sum(mcis.lossCount), 0) as lossCount,dbo.F2Y(ISNULL(sum(mcis.lossdeposit), 0)) as lossdeposit,ISNULL(sum(mcis.quitCount), 0)
as quitCount,dbo.F2Y(ISNULL(sum(mcis.quitFactorage), 0)) as quitFactorage,dbo.F2Y(ISNULL(sum(mcis.quitMoney-mcis.quitFactorage), 0))
as quitMoney,ISNULL(sum(mcis.issueCount+mcis.wRechargeCount+mcis.mRechargeCount+mcis.lossCount+mcis.quitCount), 0) as Cheji,
dbo.F2Y(ISNULL(SUM(mcis.depositeMoney+mcis.wRechargeMoney+mcis.mRechargeMoney+mcis.lossdeposit-mcis.quitMoney),0)) as Mheji from
View_SellAndReTodayReport mcis where 1=1 and mcis.summaryDate >='2016-01-16' and '2018-01-16' >= mcis.summaryDate and
mcis.operatorOID like '%' and mcis.terminalsOID in ('2372E6480F2248A694809A2447415CB0','297edff8523eaf8f01523ed87d6f001e',
'297edff852581e0801525888d09b0017','297edff852581e08015258ba14be0031','297edff852581e08015258bf43f60037','297edff852581e0801525c8645620059',
'297edff8525efa7901526252aa8902b9','297edff85902bbe901591a9f65dd14c3','297edff85a216d3e015a875fea065d73') group by RechargeCentersName ,
terminalsName ,operatorName ,summaryDate WITH ROLLUP HAVING (grouping(RechargeCentersName) = 1 ) or
( grouping(RechargeCentersName) = 0 AND grouping(terminalsName) = 1 AND grouping(operatorName) = 1 AND grouping(summaryDate) = 1 )
or ( grouping(RechargeCentersName) = 0 AND grouping(terminalsName) = 0 AND grouping(operatorName) = 0 AND grouping(summaryDate) = 0 )

sqlserver 小计合计总计的更多相关文章

  1. sqlservere小计合计总计

    SELECT CASE WHEN GROUPING(F1) = 1 THEN '总计' WHEN GROUPING(F1) = 0 AND GROUPING(F2) = 1 THEN F1+'合计' ...

  2. oracle 报表带小计合计

    selectcase when (grouping(glbm)=1) then '合计' else DECODE(glbm,null,'',glbm) end glbm,case when (grou ...

  3. Oracle分组小计、总计示例(grouping sets的使用)

    1.首先创建一个表 create table TE ( ID        VARCHAR2(2), T_CODE    VARCHAR2(4), T_NAME    VARCHAR2(4), T_A ...

  4. T-SQL多个小计+合计,分类汇总

    select then '合计' else cast(姓名 as varchar) end 姓名, then '姓名小计' else cast(学期 as varchar) end 学期, case ...

  5. vue 动态合并单元格、并添加小计合计功能

    1.效果图 2.后台返回数据格式(平铺式) 3.后台返回数据后,整理所需要展示的属性存储到(items)数组内 var obj = { "id": curItems[i].id, ...

  6. sql小计合计

    转自:http://www.jb51.net/article/18860.htm 这里介绍sql server2005里面的一个使用实例: CREATE TABLE tb(province nvarc ...

  7. oracle里面用sql做报表并带小计合计常用到的函数

    1-- DECODE函数是Oracle PL/SQL是功能强大的函数之一,假设我们想给职员加工资,其标准是:工资在8000元以下的将加20%:工资在8000元以上的加15%,通常的做法是,先选出记录 ...

  8. SQLSERVER 使用 ROLLUP 汇总数据,实现分组统计,总计(合计),小计

    版权声明:本文为博主原创文章,未经博主允许不得转载.本人观点或有不当之处,请在评论中及时指正,我会在第一时间内修改. https://blog.csdn.net/aiming66/article/de ...

  9. oracle group by rollup实现小计、合计

    SQL合计汇总实现数据N+1条显示: 注意group by rollup((ename, job, empno))!!! select decode(grouping(ename) + groupin ...

随机推荐

  1. Bootstrap-FileInput组件的简单Demo

    官网: https://github.com/kartik-v/bootstrap-fileinput/ http://plugins.krajee.com/file-input   HTML页面: ...

  2. 51Nod 天堂里的游戏

    多年后,每当Noder看到吉普赛人,就会想起那个遥远的下午. Noder躺在草地上漫无目的的张望,二楼的咖啡馆在日光下闪着亮,像是要进化成一颗巨大的咖啡豆.天气稍有些冷,但草还算暖和.不远的地方坐着一 ...

  3. iOS开发——根据数组中的字典中的某一元素排序

    数组中的元素是字典,字典中的某一个元素,比如说姓名,现在需要按照姓名的首字母来排序,怎么搞? 做法很简单,在字典中加一个元素,保存姓名的首字母,然后用下面的方法排序. - (void)sortWifi ...

  4. 2019 前端面试题汇总(主要为 Vue)

    原文链接:点我 由于我的技术栈主要为Vue,所以大部分题目都是Vue开发相关的. 1. 谈谈你对MVVM开发模式的理解 MVVM分为Model.View.ViewModel三者. Model:代表数据 ...

  5. 说说Kindle那些事

    已经不记得是什么时候在哪里听过kindle这玩意的了,反正最开始买kindle还是大四上学期,貌似是2012-9-30,那时候是整个大学最闲的时候,不知道哪天闲的蛋疼一冲动就买了个kindle4黑色款 ...

  6. 洛谷 P2014 选课 && caioj 1108 树形动态规划(TreeDP)3:选课

    这里的先后关系可以看成节点和父亲的关系 在树里面,没有父亲肯定就没有节点 所以我们可以先修的看作父亲,后修的看作节点 所以这是一颗树 这题和上一道题比较相似 都是求树上最大点权和问题 但这道题是多叉树 ...

  7. java RSA加密算法

    [转]RSA加密算法   RSA公钥加密算法是1977年由Ron Rivest.Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的.RSA取名来自开发他们三者的名字.RSA是目前 ...

  8. 坑爹的RockSaw和坑爹的windows7

    坑爹的RockSaw和坑爹的windows7 http://chen4w.iteye.com/blog/1153433

  9. Qt中事件分发源码剖析

    Qt中事件分发源码剖析 Qt中事件传递顺序: 在一个应该程序中,会进入一个事件循环,接受系统产生的事件,而且进行分发,这些都是在exec中进行的. 以下举例说明: 1)首先看看以下一段演示样例代码: ...

  10. iOS经常使用设计模式——工厂方法(简单工厂模式,工厂方法模式, 抽象工厂模式)

    1. 简单工厂模式 怎样理解简单工厂,工厂方法. 抽象工厂三种设计模式? 简单工厂的生活场景.卖早点的小摊贩.他给你提供包子,馒头,地沟油烙的煎饼等,小贩是一个工厂.它生产包子,馒头,地沟油烙的煎饼. ...