1. sql 分组小计与合计语法
group by oildepot_name,oil_name with rollup
改成
group by rollup(oildepot_name),oil_name
2. SQL数目小计 语句
select 年度,sum(销售额)as 销售额 from table group by 年度
3. 关于 sql语句 字段小计的问题
SELECT批号,
SUM(数量)AS'小计'
FROM表
GROUPBY批号
4. 请教一个关于插入小计合计的sql语句
selectcasewhendjddg=0andxmg=1andcxg=1then'人数小计:'
whendjddg=1andxmg=1andcxg=1then'人数合计:'
elsedjdd
endasdjdd,
casewhendjddg=0andxmg=1andcxg=1thenCONVERT(VARCHAR,sm)
whendjddg=1andxmg=1andcxg=1thenCONVERT(VARCHAR,sm)
elsexm
endasxm,
cx
from
(
select
djdd,xm,cx,sum(1)assm,
GROUPING(djdd)ASdjddg,
GROUPING(xm)ASxmg,
GROUPING(cx)AScxg
fromxydjb
groupbydjdd,xm,cxWITHROLLUP
)tmp
wherenot(djddg=0andxmg=0andcxg=1);
************
截图竟参考:
************
---
以上,希望对你有所帮助。
5. 请教一个关于小计合计的sql语句
select (case when b.b='小计' then '' else b.a end) as a,b.b,b.s,b.g
from
(
select (case when a.b='小计' and a.a='小计' then '合计' else a.a end) as a,
(case when a.b='小计' and a.a='小计' then '合计' else a.b end) as b,
a.s,a.g
from
(
select case when GROUPING(a)=1 then '小计' else a end as a,
case when GROUPING(b)=1 then '小计' else b end as b,
SUM(case c when 'S' then 1 else 0 end) as S,
SUM(case c when 'G' then 1 else 0 end) as G
from 表名group by a,b with rollup
) as a
) as b
a列 代表 vPrimaryExamCollegeName
b列 代表 vCollegeName
s列 代表 cIsStop 里的s
g列 代表 cIsStop 里的g
c列 代表 cIsStop
完全可以按你最后要的实现 我已经测试完了 完全OK
6. 用SQL如何实现在表最后一行小计
如图表a:
7. 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 1<>1
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
扩展改进
可以改写成一个通用的添加合计小计的存储过程。
8. SQL SERVER 根据表中某两列相同的数据进行小计、合计
建议 看看 with rollup 、with cube、grouping 统计函数用法。
9. SQL语句 小计如何实现
select 客户代码 ,客户名称 ,sum(出库数量),sum(金额 )
from A
group by 客户代码 ,客户名称
10. SQL 在表中增加小计、合计
--建表
createtableT
(
序号Varchar(10),
编码Varchar(10),
A仓库Varchar(10),
A数量int,
B仓库Varchar(10),
B数量int
)
--插入测试数据
insertintoTvalues(1,111,'A',10,'B',20)
insertintoTvalues(2,111,'A',30,'B',null)
insertintoTvalues(3,111,'A',null,'B',20)
insertintoTvalues(4,22,'A',1,'B',3)
insertintoTvalues(5,22,'A',2,'B',4)
--查询
Select序号,编码,A仓库,A数量,B仓库,B数量From
(
Select序号AsRk,序号,编码,A仓库,Convert(Varchar(10),A数量)AsA数量,
B仓库,B数量
FromT
UnionAll
SelectMAX(序号),'','','小计',Convert(Varchar(10),SUM(A数量)),'',SUM(B数量)
FromT
Groupby编码
UnionAll
SelectMAX(序号)+1,'','','A与B合计','','',SUM(isnull(A数量,0)+isnull(B数量,0))
FromT
Groupby编码
)
SOrderbyRk