sqlserver小计和合计,合计sql语句

小计和合计的区别

关系:小计是开始一段时间的计算,合计中间一段时间的计算,总计最后结尾的总计;合计包括小计,总计包括小计和合计。

十多年的比如网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整比如建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“比如网站设计”,“比如网站推广”以来,每个客户项目都认真落实执行。

区别:小计一般指分组时的组内合计,合计一般意指总计 。

理解:日小计、月合计、年总计。

比如一年中银行总账有十天小计,有二十天合计,最后是总计。计算的对象不同:小计是数字列表的一部分的总和,合计和总计都是指一组数字的总和。

2,意思不同:小计的反义词是合计或者总计。

SQL 在表中增加小计、合计

--建表

create table T

(

序号 Varchar(10),

编码 Varchar(10),

A仓库 Varchar(10),

A数量 int,

B仓库 Varchar(10),

B数量 int

)

--插入测试数据

insert into T values(1,111,'A',10,'B',20)

insert into T values(2,111,'A',30,'B',null)

insert into T values(3,111,'A',null,'B',20)

insert into T values(4,22,'A',1,'B',3)

insert into T values(5,22,'A',2,'B',4)

--查询

Select 序号,编码,A仓库,A数量,B仓库,B数量 From

(

Select 序号 As Rk,序号,编码,A仓库,Convert(Varchar(10),A数量) As A数量,

B仓库,B数量

From T

Union All

Select MAX(序号),'','','小计',Convert(Varchar(10),SUM(A数量)),'',SUM(B数量) 

From T

Group by 编码

Union All

Select MAX(序号)+1,'','','A与B合计','','',SUM(isnull(A数量,0)+isnull(B数量,0)) 

From T

Group by 编码

)

S Order by Rk

财务上的小计,合计,共计,累计是怎么区别的?

区别如下:

1、合计,一定时期内的行相加,比如本月合计;

2、累计,合计的相加,比如3月份的本年累计就等于2月份的本年累计加上本月合计;

3、总计,N列相加。比如季度有4列,分别一季度、二季度、三季度和四季度,我们习惯的会在后面跟上一列,就是总计。

SQL报表显示分组小计和合计是怎么实现的

客户提出需求,针对某一列分组加上小计,合计汇总。网上找了一些有关SQL加合计的语句。都不是很理想。决定自己动手写。

思路有三个:

1.很多用GROUPPING和ROLLUP来实现。

优点:实现代码简洁,要求对GROUPPING和ROLLUP很深的理解。

缺点:低版本的Sql Server不支持。

2.游标实现。

优点:思路逻辑简洁。

缺点:复杂和低效。

3.利用临时表。

优点:思路逻辑简洁,执行效率高。SQL实现简单。

缺点:数据量大时耗用内存.

综合三种情况,决定“利用临时表”实现。

实现效果

原始表TB

加上小计,合计后效果

SQL语句

复制代码 代码如下:

select * into #TB from TB

select * into #TB1 from #TB where 11

select distinct zcxt into #TBype from #TB order by zcxt

select identity(int,1,1)  fid,zcxt into #TBype1 from #TBype

DECLARE @i int

DECLARE @k int

select @i=COUNT(*) from #TBype

set @k=0

DECLARE @strfname varchar(50)

WHILE @k @i

BEGIN

Set @k =@k +1

select @strfname=zcxt from #TBype1 where fid =@k

set IDENTITY_INSERT #TB1 ON

insert into #TB1(fid,qldid,fa_cardid,ztbz,fa_name,model,i_number,gzrq,zcyz,ljzj,jz,sybm,zcxt,fa_ljjzzb)

select fid,qldid,fa_cardid,ztbz,fa_name,model,i_number,gzrq,zcyz,ljzj,jz,sybm,zcxt,fa_ljjzzb from

(

select * from #TB where zcxt=@strfname

union all

select 0 fid,'' qldid,'' fa_cardid,'' ztbz,'小计' fa_name,'' model,sum(i_number) as i_number,'' gzrq,sum(CAST(zcyz as money)) as zcyz,sum(CAST(ljzj as money)) as ljzj,sum(CAST(jz as money)) as jz,'' sybm,'' zcxt,Sum(fa_ljjzzb) as fa_ljjzzb

from #TB where zcxt=@strfname

group by ztbz

) as B

set IDENTITY_INSERT #TB1 off

END

select qldid,fa_cardid,zcxt,fa_name,model,i_number,gzrq,zcyz,ljzj,jz,sybm,ztbz,fa_ljjzzb from #TB1

union all

select '' qldid,'' fa_cardid,'' ztbz,'合计' fa_name,'' model,sum(i_number) as i_number,'' gzrq,sum(CAST(zcyz as money)) as zcyz,sum(CAST(ljzj as money)) as ljzj,sum(CAST(jz as money)) as jz,'' sybm,'' zcxt,Sum(fa_ljjzzb) as fa_ljjzzb

from #TB

drop table #TB1

drop table #TBype1

drop table #TBype

drop table #TB

扩展改进

可以改写成一个通用的添加合计小计的存储过程。

sql 分组小计与合计语法

group by oildepot_name,oil_name with rollup

改成

group by rollup(oildepot_name),oil_name


本文标题:sqlserver小计和合计,合计sql语句
网站网址:http://myzitong.com/article/hdepgo.html