当前位置: 代码迷 >> J2SE >> 几道SQL笔试题目,该如何处理
  详细解决方案

几道SQL笔试题目,该如何处理

热度:86   发布时间:2016-04-24 00:48:40.0
几道SQL笔试题目
CSS code
(1)表名:购物信息购物人      商品名称     数量A            甲          2B            乙          4C            丙          1A            丁          2B            丙          5……查询出购物人购买了两种或两种以上物品 的购物信息效果如下:        购物人      商品名称     数量        A            甲          2        A            丁          2        B            乙          4        B            丙          5        ....(2)表名:成绩表姓名   课程       分数张三     语文       81张三     数学       75李四     语文       56李四     数学       90王五     语文       81王五     数学       100王五     英语       49……查询出成绩全部合格的学生信息(包含姓名、课程、分数),注:分数在60以上评为合格(3)成绩表学生id        课程id     课程分数1                1           51                2           62                1           42                2           33                1           43                2           5 .....查询出 课程 1  比课程 2 分数高的所有学生的学号(4) 赛事表  tmp    rq(日期)         sf(胜负)         2005-05-09          胜   2005-05-09          负   2005-05-09          胜   2005-05-09          负   2005-05-09          负   2005-05-10          胜   2005-05-10          胜   2005-05-10          负要求 , 查询出每天的胜负情况 , 结果如下:     rq(日期)          胜       负   2005-05-09          2        3   2005-05-10          2        1 


------解决方案--------------------
试下能做对几个·
(4)
select rq,
sum( case when sf='胜' then 1 else 0 end ) as '胜',
sum( case when sf='负' then 1 else 0 end ) as '负'
from tmp
group by rq

(3)
select 学生id from 成绩表 a where 学生id in(select 学生id from 成绩表 b where b.课程id>a.课程id and b.课程分数>a.b.课程分数 group by 学生id)
------解决方案--------------------
(2)
第二题,学生ID都没有一个。。。重名怎么算?
咱假设它名字就先当于ID·要不没法做了·
select * from 成绩表 t where 姓名 not in(select 姓名 from 成绩表 where 分数<60)


------解决方案--------------------
(1)
select distint(商品名称),sum(数量) from tb where exists(select 购物人,商品名称 from tb where 数量>0 group by 购物人,商品名称 having count(购物人)>1 ) group by 商品名称
------解决方案--------------------
1、
select 购物人,商品名称,数量 from 购物信息 where 购物人 in (
select 购物人 from 购物信息 group by 购物人 having count(购物人) > 1
)
order by 购物人,商品名称 desc

2、
select * from 成绩表 where 姓名 not in (
select 姓名 from 成绩表 where 分数 < 60
)

写前两个吧。
表名,字段名千万别用中文了,太不方便。
------解决方案--------------------
LZ 发到 数据库版里,得到的答案可能会更专业。
------解决方案--------------------
同意楼上,
------解决方案--------------------
mark下 以后会用到
------解决方案--------------------
第三题:

select * from 成绩表 a inner join 成绩表 b on a.id=b.id and a.课程id<b.课程id and a.课程分数>b.课程分数
  相关解决方案