主题:紧急求救: 用SQL语句完成功能的题.运行为何老提示出错?!
在Microsoft Visual FoxPro 6.0中为什么运行不能成功?
题目:现有一个商店的数据库,记录顾客及其购物情况,由下面三个表组成:
商品(商品号,商品名,单价,商品类别,供应商);
顾客(顾客号,姓名,住址);
购买(顾客号,商品号,购买数量);
试用SQL语言完成下列功能:
1 建表,在定义中要求声明:
(1)每个表的主外码;
(2)顾客的姓名和商品名不能为空值;
(3)单价必须大于0,购买数量必须再0到20之间;
2 往表中插入数据:
商品(M01,佳洁士,8.00,牙膏,宝洁;
M02,高露洁,6.50,牙膏,高露洁;
M03,洁诺,5.00,牙膏,联合利华;
M04,舒肤佳,3.00,香皂,宝洁;
M05,夏士莲,5.00,香皂,联合利华;
M06,雕牌,2.50,洗衣粉,纳爱斯
M07,中华,3.50,牙膏,联合利华;
M08,汰渍,3.00,洗衣粉,宝洁;
M09,碧浪,4.00,洗衣粉,宝洁;)
顾客(C01,Dennis,海淀;
C02,John,朝阳;
C03,Tom,东城;
C04,Jenny,东城;
C05,Rick,西城;)
购买(C01,M01,3; C01,M05,2;
C01,M08,2; C02,M02,5;
C02,M06,4; C03,M01,1;
C03,M05,1; C03,M06,3;
C03,M08,1; C04,M03,7;
C04,M04,3; C05,M06,2;
C05,M07,8;)
商品有9 条,顾客有5条,
购买有5条
3 用SQL语句完成下列查询:
(1)求购买了供应商"宝洁"产品的所有顾客;
(2)求购买的商品包括了顾客"Dennis"所购买商品的顾客(姓名);
(3)求牙膏卖出数量最多的供应商。
create table 商品(商品号 char(8) primary key,商品名 char(10) not null,单价 float(4),商品类别 char(10),供应商 char(20),check(单价>0))
create table 顾客(顾客号 char(8) primary key,姓名 char(10) not null,住址 char(10))
create table 购买(顾客号 char(8),商品号 char(8),购买数量 int,primary key(顾客号,商品号),foreign key(顾客号) references 顾客(顾客号),foreign key(商品号) references 商品(商品号),check(购买数量 between 0 and 20));
insert into 商品 values('M01','佳洁士',8.00,'牙膏','宝洁')
insert into 商品 values('M02','高露洁',6.50,'牙膏','高露洁')
insert into 商品 values('M03','洁诺',5.00,'牙膏','联合利华')
insert into 商品 values('M04','舒肤佳',3.00,'香皂','宝洁')
insert into 商品 values('M05','夏士莲',5.00,'香皂','联合利华')
insert into 商品 values('M06','雕牌',2.50,'洗衣粉','纳爱斯')
insert into 商品 values('M07','中华',3.50,'牙膏','联合利华')
insert into 商品 values('M08','汰渍',3.00,'洗衣粉','宝洁')
insert into 商品 values('M09','碧浪',4.00,'洗衣粉','宝洁')
insert into 顾客 values('C01','Dennis','海淀')
insert into 顾客 values('C02','John','朝阳')
insert into 顾客 values('C03','Tom','东城')
insert into 顾客 values('C04','Jenny','东城')
insert into 顾客 values('C05','Rick','西城')
insert into 购买 values('C01','M01',3)
insert into 购买 values('C01','M05',2)
insert into 购买 values('C01','M08',2)
insert into 购买 values('C02','M02',5)
insert into 购买 values('C02','M06',4)
insert into 购买 values('C03','M01',1)
insert into 购买 values('C03','M05',1)
insert into 购买 values('C03','M06',3)
insert into 购买 values('C03','M08',1)
insert into 购买 values('C04','M03',7)
insert into 购买 values('C04','M04',3)
insert into 购买 values('C05','M06',2)
insert into 购买 values('C05','M07',8)
select * from 商品
select * from 顾客
select * from 购买
print '3.(1) 求购买了供应商"宝洁"产品的所有顾客;'
select *
from 顾客
where 顾客号 in(select 顾客号 from 购买 where 商品号 in(select 商品号 from 商品 where 供应商='宝洁'))
print'(2)求购买的商品包括了顾客"Dennis"所购买商品的顾客(姓名);'
select 姓名 from 顾客
where 顾客号 in(select 顾客号
from 购买 as x
where not exists(select *
from 购买 y
where 顾客号 in(select 顾客号 from 顾客 where 姓名='Dennis' )
and not exists(select * from 购买 as z
where z.顾客号=x.顾客号 and z.商品号=y.商品号)) )
print'(3)求牙膏卖出数量最多的供应商。'
select 供应商
from 商品
where 商品号 in(
select 商品号
from 购买
where 商品号 in (select 商品号 from 商品 where 商品类别='牙膏')
group by 商品号
having sum(购买数量)>=all(
select sum(购买数量)
from 购买
group by 商品号
having 商品号 in (select 商品号 from 商品 where 商品类别='牙膏')
) )
哪位高手指点为什么建第三个表"购买"时,老是提示"函数名缺少)."
我手头还有几类似的题,都是建这样的表时,出现相同的提示!
明天清晨就要去上机实践考试了,今天谁能给我答案呢!?? 先谢啦!
题目:现有一个商店的数据库,记录顾客及其购物情况,由下面三个表组成:
商品(商品号,商品名,单价,商品类别,供应商);
顾客(顾客号,姓名,住址);
购买(顾客号,商品号,购买数量);
试用SQL语言完成下列功能:
1 建表,在定义中要求声明:
(1)每个表的主外码;
(2)顾客的姓名和商品名不能为空值;
(3)单价必须大于0,购买数量必须再0到20之间;
2 往表中插入数据:
商品(M01,佳洁士,8.00,牙膏,宝洁;
M02,高露洁,6.50,牙膏,高露洁;
M03,洁诺,5.00,牙膏,联合利华;
M04,舒肤佳,3.00,香皂,宝洁;
M05,夏士莲,5.00,香皂,联合利华;
M06,雕牌,2.50,洗衣粉,纳爱斯
M07,中华,3.50,牙膏,联合利华;
M08,汰渍,3.00,洗衣粉,宝洁;
M09,碧浪,4.00,洗衣粉,宝洁;)
顾客(C01,Dennis,海淀;
C02,John,朝阳;
C03,Tom,东城;
C04,Jenny,东城;
C05,Rick,西城;)
购买(C01,M01,3; C01,M05,2;
C01,M08,2; C02,M02,5;
C02,M06,4; C03,M01,1;
C03,M05,1; C03,M06,3;
C03,M08,1; C04,M03,7;
C04,M04,3; C05,M06,2;
C05,M07,8;)
商品有9 条,顾客有5条,
购买有5条
3 用SQL语句完成下列查询:
(1)求购买了供应商"宝洁"产品的所有顾客;
(2)求购买的商品包括了顾客"Dennis"所购买商品的顾客(姓名);
(3)求牙膏卖出数量最多的供应商。
create table 商品(商品号 char(8) primary key,商品名 char(10) not null,单价 float(4),商品类别 char(10),供应商 char(20),check(单价>0))
create table 顾客(顾客号 char(8) primary key,姓名 char(10) not null,住址 char(10))
create table 购买(顾客号 char(8),商品号 char(8),购买数量 int,primary key(顾客号,商品号),foreign key(顾客号) references 顾客(顾客号),foreign key(商品号) references 商品(商品号),check(购买数量 between 0 and 20));
insert into 商品 values('M01','佳洁士',8.00,'牙膏','宝洁')
insert into 商品 values('M02','高露洁',6.50,'牙膏','高露洁')
insert into 商品 values('M03','洁诺',5.00,'牙膏','联合利华')
insert into 商品 values('M04','舒肤佳',3.00,'香皂','宝洁')
insert into 商品 values('M05','夏士莲',5.00,'香皂','联合利华')
insert into 商品 values('M06','雕牌',2.50,'洗衣粉','纳爱斯')
insert into 商品 values('M07','中华',3.50,'牙膏','联合利华')
insert into 商品 values('M08','汰渍',3.00,'洗衣粉','宝洁')
insert into 商品 values('M09','碧浪',4.00,'洗衣粉','宝洁')
insert into 顾客 values('C01','Dennis','海淀')
insert into 顾客 values('C02','John','朝阳')
insert into 顾客 values('C03','Tom','东城')
insert into 顾客 values('C04','Jenny','东城')
insert into 顾客 values('C05','Rick','西城')
insert into 购买 values('C01','M01',3)
insert into 购买 values('C01','M05',2)
insert into 购买 values('C01','M08',2)
insert into 购买 values('C02','M02',5)
insert into 购买 values('C02','M06',4)
insert into 购买 values('C03','M01',1)
insert into 购买 values('C03','M05',1)
insert into 购买 values('C03','M06',3)
insert into 购买 values('C03','M08',1)
insert into 购买 values('C04','M03',7)
insert into 购买 values('C04','M04',3)
insert into 购买 values('C05','M06',2)
insert into 购买 values('C05','M07',8)
select * from 商品
select * from 顾客
select * from 购买
print '3.(1) 求购买了供应商"宝洁"产品的所有顾客;'
select *
from 顾客
where 顾客号 in(select 顾客号 from 购买 where 商品号 in(select 商品号 from 商品 where 供应商='宝洁'))
print'(2)求购买的商品包括了顾客"Dennis"所购买商品的顾客(姓名);'
select 姓名 from 顾客
where 顾客号 in(select 顾客号
from 购买 as x
where not exists(select *
from 购买 y
where 顾客号 in(select 顾客号 from 顾客 where 姓名='Dennis' )
and not exists(select * from 购买 as z
where z.顾客号=x.顾客号 and z.商品号=y.商品号)) )
print'(3)求牙膏卖出数量最多的供应商。'
select 供应商
from 商品
where 商品号 in(
select 商品号
from 购买
where 商品号 in (select 商品号 from 商品 where 商品类别='牙膏')
group by 商品号
having sum(购买数量)>=all(
select sum(购买数量)
from 购买
group by 商品号
having 商品号 in (select 商品号 from 商品 where 商品类别='牙膏')
) )
哪位高手指点为什么建第三个表"购买"时,老是提示"函数名缺少)."
我手头还有几类似的题,都是建这样的表时,出现相同的提示!
明天清晨就要去上机实践考试了,今天谁能给我答案呢!?? 先谢啦!