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

sql分组拼接

发布时间: 2022-02-16 09:21:03

Ⅰ 怎么分组连接sql

准备数据

createtablet1(日期varchar2(10),aint,bint);
insertintot1
select'2013-08-01',1,2fromal
unionallselect'2013-08-01',2,3fromal
unionallselect'2013-08-01',2,3fromal
unionallselect'2013-08-02',3,4fromal
unionallselect'2013-08-02',4,5fromal;
createtablet2(日期varchar2(10),aint,bint);
insertintot2
select'2013-08-03',1,2fromal
unionallselect'2013-08-03',4,5fromal
unionallselect'2013-08-03',99,99fromal;

查询语句

selectn.日期,m.日期,n.a,n.bfrom(selectdistinct日期fromt1)m,t2n
wherenotexists(select1fromt1where日期=m.日期anda=n.aandb=n.b)

顺序不一致可以自行加order by

Ⅱ sql分组合并统计查询

select 部门,count(姓名) 人数,(select count(*) from biao where 部门=a.部门 and 状态='状态1') as 状态1,(select count(*) from biao where 部门=a.部门 and 状态='状态2') as 状态2,(select count(*) from biao where 部门=a.部门 and 状态='状态3') as 状态3,(select count(*) from biao where 部门=a.部门 and 状态='状态4') as 状态4 from biao a group by 部门

Ⅲ SQL 分组统计,再合并组

select 组名2 as 组名, 产品2 as 产品,sum(数量) as 数量
from
(select case when 组名 = 'A1' then 'A' when 组名 = 'B1' then 'B' else 组名 end as 组名2,case when 组名 = 'A1' then 'aa' when 组名 = 'B1' then 'bb' else 产品 end as 产品2 ,数量
from 表
) tb
group by 组名2, 产品2

Ⅳ sqlserver 分组 拼接其他字段

SQL2005或以上才可以:
Declare @t Table
(
ID int,
FName varchar(20),
CName varchar(20),
CAge varchar(20)
)
Insert Into @t
select 1,'吴亮','吴1','3岁' Union
select 1,'吴亮','吴2','5岁' Union
select 1,'吴亮','吴3','9岁' Union
select 4,'麦大伟','麦1','3岁' Union
select 4,'麦大伟','麦2','5岁' Union
select 6,'张思','张1','3岁'
下面是合并:
Select ID,FName,CName=Stuff((Select ','+CName From @t Where ID=T.ID For xml path('')),1,1,''),
CAge=Stuff((Select ','+CAge From @t Where ID=T.ID For xml path('')),1,1,'')
From @t T Group by id,FName

Ⅳ sql分组查询后合并符合条件的数据

可以把源表中为null 和‘’的先update一下,src都统一设置成‘’,如果是group by 以后合并,由于src不同,没法合并吧。因为要考虑合并后src的值

Ⅵ sql 分组合并

你大概是这个意思:

selectcompanyname,sum(dtlcost+totalpackqty+boxqty)fromBms_transcontrol_dtl_vgroupbycompanyname

Ⅶ sql group by 之后 如何合并分组的文本

db2 / oracle /sql server 2005以上,可以这样做
SELECT 姓名,
MAX(CASE RK WHEN 1 THEN 内容 ELSE '' END)
||MAX(CASE RK WHEN 2 THEN 内容 ELSE '' END)
||MAX(CASE RK WHEN 3 THEN 内容 ELSE '' END)
||MAX(CASE RK WHEN 4 THEN 内容 ELSE '' END)
FROM (SELECT 姓名, 内容,
ROW_NUMBER() OVER(PARTITION BY 姓名 ORDER BY 内容) rk FROM tab) t
GROUP BY 姓名

Ⅷ SQL多表关联查询再拼接和分组的问题

第二个问题的意思是:列出每个学校的交费人数,和总费用select 所属学校,count(),sum(收费金额)from T1,T2 where T1.IDCard=T2.IDCard group by 所属学校问题已解决,我是把之前的所有子查询语句当做条件,这样就是代码量多了点。。。where (select count(*) from tb1 as t1 whree t1.orgid=org.id) >0 or (select count(*) from tb2 as t2 whree t2.orgid=org.id) >0 or 。。。这样就查询出了我想要的数据怎么限制b,像这样吗要这个结果,对巴?GROUP BY A, B 不行么?理论是绝对可以的哦。如果这个不型,可以考虑这个数据这设计的愿因是 一个人对应多条应有考勤, 一条实际应考勤就是代表一个周期(如图2 B.jfjs 应是这个周期应有的考勤 中存的3就是 这个周期应该有相应的三个应际考勤记录) 如果 关联 人的话 要怎么才能 分别查询满足条件的周期下的应际考勤数你的意思是 一条应有考勤对应一个周期,一条实际考勤代表一个周期中的一个点?例如一个实际考勤是一周,就要对应5条实际考勤?这样的话也是一样都对到人上去,然后应有考勤是什么周期(几号-几号)应该对应几次实际考勤,实际考勤就直接记录打考勤的时间。这样在统计的时候取出人、应有考勤数、考勤周期里实际考勤数应该就满足需求了吧。 应有考勤和实际考勤同人关联,实际考勤通过时间周期和应有考勤关联然后用count()取出应有考勤数。b.考勤周期 = 输入参数(或者不要这个条件就是所有的有考勤时间的数据),如果需要人员信息再去关联a表就好。就是实际考勤需要取考勤的周期,这个周期可以放在实际考勤表里面那就不用时间关联直接周期关联就行。用人员的id和应有考勤关联起来就好。

Ⅸ 请教sql 可以分组后数据合并吗

select
[name]
strValue=(select[value]+','from表名bwherea.[name]=b.[name]forxmlpath(''))
from
表名a
groupby
[name]

Ⅹ sql 分组后怎么把结果合并到一个类别下啊

--如果商品和类别在同一个表
--建表
CreateTableT
(
商品Varchar(10),
类别Varchar(10),
数量Int
)

--插入数据
InsertIntoTValues('苹果','水果',10)
InsertIntoTValues('葡萄','水果',20)
InsertIntoTValues('西红柿','蔬菜',30)

--方法一,按商品类别分类求和,加withcube选项
SelectISNULL(商品,'分类-'+类别)As商品,数量
From(
Select商品,类别,SUM(数量)As数量FromT
GroupBy商品,类别
WithCube
)S
Where类别IsNotNull

--方法二,按商品和类别分别汇总后合拼在一起,然后排序
Select商品,数量
From(
Select商品,Max(类别)As类别,SUM(数量)As数量FromT
GroupBy商品
UnionAll
Select'分类-'+类别,类别+'Z',SUM(数量)As数量FromT
GroupBy类别
)S
OrderBy类别

--如果没有类别,需要先建一个对照表
--建表
CreateTableM
(
商品Varchar(10),
类别Varchar(10)
)
CreateTableN
(
商品Varchar(10),
数量Int
)

--插入数据
InsertIntoMValues('苹果','水果')
InsertIntoMValues('葡萄','水果')
InsertIntoMValues('西红柿','蔬菜')
InsertIntoNValues('苹果',10)
InsertIntoNValues('葡萄',20)
InsertIntoNValues('西红柿',30)
InsertIntoNValues('苹果',15)

--查询
SelectIsNull(商品,'分类-'+类别)As商品,数量
From(
Selectn.商品,类别,SUM(数量)As数量FromnLeftJoinm
onm.商品=n.商品
GroupByn.商品,类别
WithCube
)s
Where类别isnotnull