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

sql多表联查求和分组

发布时间: 2022-12-06 01:26:32

1. sql 多表查询求和

建表a(插入数据过程略)

create table a

(mingzi varchar2(50),

id int);

2. 求个 SQL 多表、分组汇总合计的 语句

select a.专业级别,a.专业名称,b.计划人数,sum(case when 学生编号='X' then 1 else 0 end) 报名人数,sum(case when 学生编号<>'X' then 1 else 0 end) 审核人数,
sum(case when 住址='长沙' then 1 else 0 end) 长沙,
sum(case when 住址='望城' then 1 else 0 end) 望城,
sum(case when 住址='宁乡' then 1 else 0 end) 宁乡,
sum(case when 住址='浏阳' then 1 else 0 end) 浏阳,
sum(case when 性别='男' then 1 else 0 end) 男,
sum(case when 性别='女' then 1 else 0 end) 女,
from
TB_Student a,TB_Profession b
where a.专业级别=b.专业级别 and a.专业名称=b.专业名称
group by a.专业级别,a.专业名称,b.计划人数

3. sql多表查询分组问题

据我所知,group by子句应该与聚合函数如:sum()搭配使用才有效果。
结果集中出现的字段如果不参与聚合运算,就应当写入group by 子句。比如:select a1,a2,a3,sum(a4) from t group by a1,a2,a3.
如果就是不想用聚合函数,如:select a1,a2,a3,a4 from t group by a1,a2,a3,a4。这样也是可以的,效果等价于:
select distinct a1,a2,a3,a4 from t

4. Sql语句,分组统计多表联查

selecta.lqr,
(selectsum(sl)fromt2wherea.lqr=t2.lqr)kc,
(selectsum(sl)fromt1wherea.lqr=t1.lqr)lq
from
(
selectlqr
fromt1
union
selectlqr
fromt2
)a

5. sql 多表关联 求和语句 怎么写

你结果显示有问题吧,最后id=2怎么来的?

创建表:

createtabletable1
(idint,
类别varchar(10),
货号varchar(3))

insertintotable1values(1,'电子','011')
insertintotable1values(2,'零件','022')
insertintotable1values(3,'主板','033')

createtabletable2
(idint,
货号varchar(3),
数量int)

insertintotable2values(1,'011',5)
insertintotable2values(2,'022',6)
insertintotable2values(3,'033',-8)
insertintotable2values(4,'011',22)
insertintotable2values(5,'022',65)
insertintotable2values(6,'033',81)

查询:

selecta.id,a.类别,a.货号,SUM(b.数量)
fromtable1a,table2bwherea.货号=b.货号anda.货号='011'
groupbya.id,a.类别,a.货号

结果:

6. 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和应有考勤关联起来就好。

7. sql 多表联接查询(超过有五张表,但是又分多种情况,子查询语句有十几条)统计然后分组

select (select orgname from org as og where org.id=og.id),
(select count(*) from tb1 as t1 whree t1.orgid=org.id) as number1,
(select count(*) from tb2 as t2 whree t2.orgid=org.id) as number2,
(select count(*) from tb3 as t3 whree t3.orgid=org.id) as number3,
(select count(*) from tb4 as t4 whree t4.orgid=org.id) as number4,
(select count(*) from tb5 as t5 whree t5.orgid=org.id) as number5 ,
。。。。。。。。。。。。。。。。。。。。。。。。number18
into #table from org as org,tb as tb where org.id=tborg.id
group by org.name having count(*)>0
go
select * from #table where number1<>0 and number2<>0 and number3<>0 and number4<>0 and number5 <>0
go

文字太多看到头晕,也不知道你要的结果是不是这个意思。希望能帮到你吧!

8. SQL多表分组查询

selectt1.*,t2.English
from
(selecta.id,a.name,a.address,MAX(b.Chinese)Chinesefromstudenta,Scoreb
wherea.id=b.idgroupbya.id,a.name,a.address)t1,
scoret2
wheret1.id=t2.idandt1.Chinese=t2.Chinese

9. 怎么用sql语句来实现分组求和

第二列第一行是不是写错了? 应该是5 ?

select 名称,min(金额) 类型1,max(金额) 类型2,sum(金额) 金额合计 from 表名
group by 名称 order by 1