当前位置:首页 » 编程语言 » sql语句分类汇总
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql语句分类汇总

发布时间: 2022-04-26 12:56:37

sql 分类汇总查询语句

select dept as 部门,sum(pay) as 合计,sum(case zt when '01'then 1 else 0 end) as 个数(01状态),
sum(case zt when '02'then 1 else 0 end) as 个数(02状态),count(*) as 总数
from 表 group by dept

以上,希望对你有所帮助

⑵ SQL 语句的分类汇总

select * from table group by subject,title,name order by subject,title,name

⑶ SQL查询语句,分类,汇总

创建测试表,插入数据

createtabletast
(序号int,
姓名varchar(10),
电话卡号varchar(20),
卡类型varchar(10))

insertintotastvalues(1,'张三','1000000000','移动')
insertintotastvalues(2,'张三','1000000001','移动')
insertintotastvalues(2,'张三','1000000002','移动')
insertintotastvalues(4,'张三','1000000003','联通')
insertintotastvalues(5,'张三','1000000004','联通')
insertintotastvalues(6,'李四','1000000004','联通')
insertintotastvalues(7,'李四','1000000005','联通')
insertintotastvalues(8,'李四','1000000006','移动')
insertintotastvalues(9,'王麻','1000000007','移动')
insertintotastvalues(10,'王麻','1000000008','移动')
insertintotastvalues(11,'王麻','1000000010','移动')
insertintotastvalues(12,'王麻','1000000011','联通')

运行:

selectcasewhena.电话卡号=b.电话卡号thena.姓名else''end姓名,a.电话卡号,a.卡类型
fromtastaleftjoin
(select姓名,min(电话卡号)电话卡号fromtastgroupby姓名)b
ona.电话卡号=b.电话卡号anda.姓名=b.姓名

结果:

⑷ sql语句分类汇总,排序查询语句怎么实现

select商品id,sum(商品数量)商品数量from表名groupby商品idorderbysum(商品数量)desc

这样试试

⑸ 关于使用sql语句sum(case when……)来实现分类汇总功能

有两处有笔误,如果结果不同的话,需要检查一下,先对比下总金额,再对比各个的销售额,再检查姓名是否完全一致,EXCEL中经常有前后空格或是不容易显示出来的字符会有影响,用select 月份,姓名,sum(销售数量*产品单价) from 表格 group by 月份,姓名

例如:

select

月份,

sum(casewhen销售人员='姓名1'then销售数量*产品单价else0end)as姓名1销售额,

sum(casewhen销售人员='姓名2'then销售数量*产品单价else0end)as姓名1销售额,

sum(casewhen销售人员='姓名3'then销售数量*产品单价else0end)as姓名1销售额

from表格

groupby月份,销售人员

(5)sql语句分类汇总扩展阅读:

注意事项

case when有用两种用法如下:

用法一:

CASE case_value

WHEN when_value THEN statement_list

[WHEN when_value THEN statement_list] ...

[ELSE statement_list]

END CASE

用法二:

CASE

WHEN search_condition THEN statement_list

[WHEN search_condition THEN statement_list] ...

[ELSE statement_list]

END CASE

⑹ SQL语句实现分类汇总的方法

Select id, isNull(sum(case when value>aa then num end),0) as 'sum_num_of_value>aa' ,
isNull(sum(case when value<aa then num end),0) as 'sum_num_of_value<aa'
from abc
group by id

⑺ SQL 分类汇总查询语句

select
ROW_NUMBER()
over(order
by
a.dept)
序号,
a.dept
部门,
a.合计,
b.个数01,
c.个数02,
d.总数
from
(select
dept,SUM(pay)
合计
from
t
where
zt='01'
or
zt='02'
group
by
dept)
a,
(select
dept,COUNT(pay)
个数01
from
t
where
zt='01'
group
by
dept)
b,
(select
dept,COUNT(pay)
个数02
from
t
where
zt='02'
group
by
dept)
c,
(select
dept,COUNT(pay)
总数
from
t
group
by
dept)
d
where
a.dept=b.dept
and
b.dept=c.dept
and
c.dept=d.dept
参照楼上的写法,改进一下有:
select
ROW_NUMBER()
over(order
by
dept)
序号,
dept
as
部门,
sum(case
when
zt='01'
OR
zt='02'
then
pay
else
0
end)
合计,
sum(case
when
zt='01'
then
1
else
0
end)
as
个数01状态,
sum(case
when
zt='02'
then
1
else
0
end)
as
个数02状态,
count(*)
as
总数
from
t
group
by
dept

⑻ 怎么用SQL语句对表【收支表】进行分类汇总

--建立测试表 并插入数据

-- 执行一个查询 ,你可以写在一个存储过程里面,我困了,不过格式按照你说的写好了

CREATETABLETB
(说明NVARCHAR(20)
,
类别NVARCHAR(20),
金额INT,
款项类别NVARCHAR(20)
)


INSERTINTOdbo.TB
(说明,类别,金额,款项类别)
VALUES(N'项目A',--说明-nvarchar(20)
N'支出',--类别-nvarchar(20)
900,--金额-int
N'费用B'--款项类别-nvarchar(20)
)


INSERTINTOdbo.TB
(说明,类别,金额,款项类别)
VALUES(N'项目A',--说明-nvarchar(20)
N'收入',--类别-nvarchar(20)
2000,--金额-int
N'收入A'--款项类别-nvarchar(20)
)


INSERTINTOdbo.TB
(说明,类别,金额,款项类别)
VALUES(N'项目B',--说明-nvarchar(20)
N'支出',--类别-nvarchar(20)
3500,--金额-int
N'费用C'--款项类别-nvarchar(20)
)


INSERTINTOdbo.TB
(说明,类别,金额,款项类别)
VALUES(N'项目C',--说明-nvarchar(20)
N'支出',--类别-nvarchar(20)
200,--金额-int
N'费用D'--款项类别-nvarchar(20)
)

INSERTINTOdbo.TB
(说明,类别,金额,款项类别)
VALUES(N'项目A',--说明-nvarchar(20)
N'支出',--类别-nvarchar(20)
300,--金额-int
N'费用A'--款项类别-nvarchar(20)
)

CREATETABLE#temp
(
说明NVARCHAR(20),
类别NVARCHAR(20),
金额INT,
款项类别NVARCHAR(20)
)

INSERTINTO#temp
SELECT*
FROMdbo.TB
UNIONALL
SELECT说明,
CASEWHEN说明ISNOTNULLTHENISNULL(类别,'收支净值')
ELSE类别
END+'合计'AS类别,
SUM(CASEWHEN类别='收入'THEN金额
ELSE-金额
END)AS金额,
MAX(款项类别)AS款项类别
FROMTB
WHERE说明ISNOTNULL
GROUPBYROLLUP(说明,类别)
ORDERBY说明INSERT#temp
SELECTB.*
FROM(SELECTDISTINCT
说明,
'收入合计'AS类别,
0AS金额,
''AS款项类别
FROM#temp
WHERE说明ISNOTNULL
)B
WHEREB.说明+B.类别NOTIN(SELECT说明+类别
FROM#temp
WHERE说明ISNOTNULL)

INSERT#temp
SELECTB.*
FROM(SELECTDISTINCT
说明,
'支出合计'AS类别,
0AS金额,
''AS款项类别
FROM#temp
WHERE说明ISNOTNULL
)B
WHEREB.说明+B.类别NOTIN(SELECT说明+类别
FROM#temp
WHERE说明ISNOTNULL);
WITHtt
AS(SELECT说明,
类别,
CASEWHEN类别='支出合计'THENABS(金额)
ELSE金额
ENDAS金额,
CASEWHEN类别='收入'
OR类别='支出'THEN款项类别
ELSE''
ENDAS款项类别,
CASEWHEN类别='支出'THEN1
WHEN类别='收入'THEN2
WHEN类别='收入合计'THEN3
WHEN类别='支出合计'THEN4
WHEN类别='收支净值合计'THEN5
ELSE6
ENDASnum
FROM#temp
WHERE说明ISNOTNULL
)

SELECTtt.说明,
tt.类别,
tt.金额,
tt.款项类别
FROMtt
ORDERBY说明,
num

DROPTABLE#temp