高分求一条Mysql数据库 的SQL语句,在线等
如下3个表:学生表:sid(int)name(varcher)应缴费用表:yid(int)sid(int)对应学生表idamount(double)金额收费记录表:rid...
如下3个表:
学生表:s
id (int)
name(varcher)
应缴费用表:y
id(int)
sid(int) 对应学生表id
amount(double) 金额
收费记录表:r
id(int)
sid(int) 对应学生表id
amount(double) 收费金额
注:一个学生可以有多个收费记录,也可以有多个应缴费用;
求一条Mysql数据 SQL语句:
查询所有费用已缴清的学生,及应缴费用表amount的和等于收费记录表amount的和 ------>y.sum(y.amount)=sum(r.amount)
select s.*,sum(y.amount),sum(r.amount) from s,y,r where s.id=r.sid and s.id=y.sid ______ group by s.id
横线处怎么才能比较两个和相等?
或许这种思路不对,需要嵌套查询或者in,左右连接之类的... 展开
学生表:s
id (int)
name(varcher)
应缴费用表:y
id(int)
sid(int) 对应学生表id
amount(double) 金额
收费记录表:r
id(int)
sid(int) 对应学生表id
amount(double) 收费金额
注:一个学生可以有多个收费记录,也可以有多个应缴费用;
求一条Mysql数据 SQL语句:
查询所有费用已缴清的学生,及应缴费用表amount的和等于收费记录表amount的和 ------>y.sum(y.amount)=sum(r.amount)
select s.*,sum(y.amount),sum(r.amount) from s,y,r where s.id=r.sid and s.id=y.sid ______ group by s.id
横线处怎么才能比较两个和相等?
或许这种思路不对,需要嵌套查询或者in,左右连接之类的... 展开
展开全部
select x.*,s.name from (
select a.*,b.bmt from (select sid,sum(amount) amt from y group by sid) a
left join (select sid,sum(amount) bmt from r group by sid)b
on a.sid=b.sid
where a.amt=b.bmt) x left join s on x.sid=s.id
select a.*,b.bmt from (select sid,sum(amount) amt from y group by sid) a
left join (select sid,sum(amount) bmt from r group by sid)b
on a.sid=b.sid
where a.amt=b.bmt) x left join s on x.sid=s.id
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-10-22
展开全部
select * from s where id in( select id from r where ((select sum( amount ) from r where r.sid = s.id and) = (select sum( amount) from y where y.sid = s.id))
没有测试,你自己测试一下,看看行不行,有问题欢迎追问
更多追问追答
追问
谢谢!
怎么才吧sum(y.amount)和sum(r.amount)也取出来,最后想获取的数据结果是:
学生id ,学生姓名,应缴合计,已交合计
追答
哦,我想我上的这条语句,首先能不能用?
我自己数据库没有这样的表和结构,所以没法测试!
这个能用了,再研究你第二个问题!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from s where (select sum(amount) from y where sid = s.id) <= (select sum(amount) from r where sid = s.id)
试试看下吧
试试看下吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from s,( select sid, sum(y.amount)amount from y grounp by sid,amount)d,
(select sid, sum(r.amount)amount from r group by sid,amount) f,
where s.id=d.sim,s.id=f.sid, d.amount=f.amount
(select sid, sum(r.amount)amount from r group by sid,amount) f,
where s.id=d.sim,s.id=f.sid, d.amount=f.amount
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-10-22
展开全部
mysql> grant select, insert, update, delete on *.* to
??? -> test1@"%"Identified by "abc123";
Query OK, 0 rows affected (0.03 sec)
??? -> test1@"%"Identified by "abc123";
Query OK, 0 rows affected (0.03 sec)
追问
?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询