有几个sql语句不会写,请高手帮忙,谢谢!
第一题:
表名:sales
购物人 商品名称 数量
A 甲 2
B 乙 4
C 丙 1
A 丁 2
B 丙 5
给出所有购入商品为两种或两种以上的购物人记录
第二题:
用一条SQL语句 查询出每门课都大于80分的学生姓名
name kecheng fenshu
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
第三题:
学生表 如下:
自动编号 学号 姓名 课程编号 课程名称 分数
1 2005001 张三 0001 数学 69
2 2005002 李四 0001 数学 89
3 2005001 张三 0001 数学 69
删除除了自动编号不同,其他都相同的学生冗余信息
第四题:
原表:
courseid coursename score
-------------------------------------
1 java 70
2 oracle 90
3 xml 40
4 jsp 30
5 servlet 80
-------------------------------------
为了便于阅读,查询此表后的结果显式如下(及格分数为60):
courseid coursename score mark
---------------------------------------------------
1 java 70 pass
2 oracle 90 pass
3 servlet 80 pass
4 xml 40 fail
5 jsp 30 fail
---------------------------------------------------
写出此查询语句
第五题
一个表中每个Id可能有多个记录,把所有这个表所包含的id查出来,每个id只显示一次,并显示该id共有多少条记录数
问题点数:30、回复次数:7Top
1 楼Yang_(扬帆破浪)回复于 2006-03-01 19:54:26 得分 5
1
select 购物人
from sales
group by 购物人
having count(*)>=2
Top
2 楼Yang_(扬帆破浪)回复于 2006-03-01 19:56:46 得分 5
2
select distinct name from tablename
where not exists (
select 1 from tablename
where name=a.name
and fenshu <=80
)Top
3 楼lsqkeke(可可)回复于 2006-03-01 20:01:58 得分 5
--第一题:
select * from sales
where (select count(distinct 商品名称) from sales where 购物人=a.购物人)>1Top
4 楼Yang_(扬帆破浪)回复于 2006-03-01 20:02:20 得分 5
3
delete a
from 学生表 a
where 自动编号<>(
select min(自动编号) from 学生表
where 学号=a.学号
and 姓名=a.姓名
and 课程编号=a.课程编号
and 课程名称=a.课程名称
and 分数=a.分数
)
4
select courseid,coursename,score,case when score>=60 then 'pass' else 'fail' end as mark
from tablename
5
select id,count(*) as c
from tablename
group by id
Top
5 楼lsqkeke(可可)回复于 2006-03-01 20:03:33 得分 5
第五题
select ID,amount=count(ID) from tb group by IDTop
6 楼lsqkeke(可可)回复于 2006-03-01 20:06:47 得分 5
第一题:
如果存在这种情况,即A 够买了同一个商品两次,则Yang_(扬帆破浪)的写法就有点问题
我就考虑到这一点,所以有点差别
购物人 商品名称 数量
A 甲 2
B 乙 4
C 丙 1
A 甲 2
B 丙 5
Top
7 楼happyflystone(无枪的狙击手)回复于 2006-03-01 20:24:00 得分 0
支持Top




