求大能帮我做下数据库的题目……急急急……题目在下,谢谢……做的好可以加分!
1、查找姓李的男性客户信息2、统计08-1-1以后每个销售人员的销售额3、查询供应商信息中来自南京的相关信息,并形成一个新的数据表“南京供应商”4、找出订货量大于10的货...
1、查找姓李的男性客户信息
2、统计08-1-1以后每个销售人员的销售额
3、查询供应商信息中来自南京的相关信息,并形成一个
新的数据表“南京供应商”
4、找出订货量大于10的货品信息
5、查询每种货品订货量大于最小一次订货量的订单信息
6、查找每种货品订货量最小的订单信息
7、查询每种货品订货量最大的订单信息
8、利用COMPUTE子句对同一货品编码的订货数量进行求和。
9、统计每个销售人员的销售业绩
10、比较两个数的大小
11、张三的生日为1988/8/18,使用日期函数计算张三的年龄和天数,并输出。
12、创建销售人员的视图并将其中销售工号为1的人员姓名改为“余则成”
13、利用视图实现查询每种货品订货量大于最小一次订货量的订单信息
14、使用游标的@@cursor_rows变量,计算“客户信息”表中客户的数量。假设每个客户有一个唯一的纪录
15、创建一个简单的存储过程,查询销售人员编码=’09’的订单信息
16、创建一个存储过程,实现统计“客户信息”表中指定城市客户的数量,用输入参数来指定城市,用RETURN返回数量
17、创建一个简单的DML触发器,当用户试图更新货品信息时,利用它来产生提示信息。
18、当用户从“订单信息”表中删除一个订单时,表示用户退单,即不再订购该货品,在这种情况下,假定添加订单时减少了“货品信息”的库存量,这时,就要将原来的订货数量增加到库存量上。 展开
2、统计08-1-1以后每个销售人员的销售额
3、查询供应商信息中来自南京的相关信息,并形成一个
新的数据表“南京供应商”
4、找出订货量大于10的货品信息
5、查询每种货品订货量大于最小一次订货量的订单信息
6、查找每种货品订货量最小的订单信息
7、查询每种货品订货量最大的订单信息
8、利用COMPUTE子句对同一货品编码的订货数量进行求和。
9、统计每个销售人员的销售业绩
10、比较两个数的大小
11、张三的生日为1988/8/18,使用日期函数计算张三的年龄和天数,并输出。
12、创建销售人员的视图并将其中销售工号为1的人员姓名改为“余则成”
13、利用视图实现查询每种货品订货量大于最小一次订货量的订单信息
14、使用游标的@@cursor_rows变量,计算“客户信息”表中客户的数量。假设每个客户有一个唯一的纪录
15、创建一个简单的存储过程,查询销售人员编码=’09’的订单信息
16、创建一个存储过程,实现统计“客户信息”表中指定城市客户的数量,用输入参数来指定城市,用RETURN返回数量
17、创建一个简单的DML触发器,当用户试图更新货品信息时,利用它来产生提示信息。
18、当用户从“订单信息”表中删除一个订单时,表示用户退单,即不再订购该货品,在这种情况下,假定添加订单时减少了“货品信息”的库存量,这时,就要将原来的订货数量增加到库存量上。 展开
1个回答
2011-12-19
展开全部
use 订单管理
go
--1、查找姓李的男性客户信息
select 姓名,性别 from 客户信息 where 姓名 like'李%' and 性别 like'男%'
go
--2、统计08-1-1以后每个销售人员的销售额
select 销售人员编码 ,sum(总金额) as 销售额 from 订单信息 where 订货日期>='08-1-1' group by 销售人员编码
go
/*
--3、查询供应商信息中来自南京的相关信息,并形成一个新的数据表“南京供应商”
select * into 南京供应商 from 供应商信息 where 地址 like'南京%'
go
--4、找出订货量大于10的货品信息
select 货品编码,数量 from 订单信息 where 数量 >'10'
go
*/
--5、查询每种货品订货量大于最小一次订货量的订单信息
select * from 订单信息 as a where 数量>any(select 数量 from 订单信息 as b where a.货品编码=b.货品编码)
go
--6、查找每种货品订货量最小的订单信息
select * from 订单信息 as a where 数量<=all(select 数量 from 订单信息 as b where a.货品编码=b.货品编码)
go
--7、查询每种货品订货量最大的订单信息
select * from 货品信息 as a where ( select 数量 from 订单信息 where 数量>=all(select 数量 from 订单信息 as b where a.货品编码=b.货品编码))
go
--8、利用COMPUTE子句对同一货品编码的订货数量进行求和
SELECT * FROM 订单信息 WHERE 订货日期 >= '2008/01/01' ORDER BY 货品编码
compute SUM(数量) BY 货品编码
go
--9、统计每个销售人员的销售业绩
select 销售人员编码,sum(总金额) from 订单信息 group by 销售人员编码
go
--10、比较两个数的大小
declare @var1 int,@var2 int
set @var1=58
set @var2=80
if @var1!=@var2
if @var1>@var2
print '第一个数比第二个数大。'
else
print '第一个数比第二个数小。'
else
print '二个数相同。'
go
/*
--11、张三的生日为1988/8/18,使用日期函数计算张三的年龄和天数,并输出
--12、创建销售人员的视图并将其中销售工号为1的人员姓名改为“余则成”
create view 销售人员视图
as
select * from 销售人员
go
update 销售人员视图 set 姓名='余则成' where 销售人员编码='1'
go
--13、利用视图实现查询每种货品订货量大于最小一次订货量的订单信息
create view 订货视图
as
select * from 订单信息 as a where 数量>any(select 数量 from 订单信息 as b where a.货品编码=b.货品编码)
go
select * from 订货视图
go
--14、使用游标的@@cursor_rows变量,计算“客户信息”表中客户的数量。假设每个客户有一个唯一的纪录
declare customers insensitive cursor
for select * from 客户信息
open customers
if @@error=0
begin
print '游标打开成功'
print '表中的客户数量为:'+ convert(varchar(3),@@cursor_rows)
end
close customers
deallocate customers
go
--15、创建一个简单的存储过程,查询销售人员编码=’09’的订单信息
CREATE PROCEDURE 订单信息
as
select*from 订单信息 where 销售人员编码='09'
go
--16、创建一个存储过程,实现统计“客户信息”表中指定城市客户的数量,用输入参数来指定城市,用RETURN返回数量
CREATE PROCEDURE Cst_City
@City AS VARCHAR(20), @CountOUT INT OUTPUT
AS
DECLARE customers CURSOR
FOR SELECT 地址 FROM 客户信息
OPEN customers --打开游标
DECLARE @Address VARCHAR(50)
DECLARE @Loop BIT
DECLARE @Count INT
SET @Count=0
IF @@ERROR = 0
BEGIN
WHILE 1=1 --控制循环
BEGIN
FETCH NEXT FROM customers INTO @Address
IF @@FETCH_STATUS = 0 --判断读入是否正确
BEGIN
IF CHARINDEX(@City, @Address)>0
SET @Count=@Count+1
END
ELSE
BREAK
END
PRINT '表中'+@City+'的客户数量为:'+CONVERT(VARCHAR(3), @Count)
END
CLOSE customers --关闭游标
DEALLOCATE customers --释放游标
SET @CountOUT=@Count --建立输出参数值
RETURN @Count --返回参数
GO
--执行存储过程
DECLARE @COUNT1 INT, @COUNT2 INT
EXECUTE @COUNT2=Cst_City '深圳',@COUNT1 OUTPUT
PRINT @COUNT2
PRINT @COUNT1
GO
--17、创建一个简单的DML触发器,当用户试图更新货品信息时,利用它来产生提示信息
create trigger 修改货品信息
on 货品信息
for update
as
raiserror('更新数据表',16,101)
go
--18、当用户从“订单信息”表中删除一个订单时,表示用户退单,即不再订购该货品,在这种情况下,假定添加订单时减少了“货品信息”的库存量,这时,就要将原来的订货数量增加到库存量上
--如果存在则删除
IF EXISTS(SELECT name,type FROM sysobjects WHERE name='Check_库存量' AND type='TR')
DROP TRIGGER Check_库存量
GO
--建立后触发的插入触发器
CREATE TRIGGER Check_库存量 ON 订单信息
for INSERT --后INSERT触发器
AS
DECLARE @OrderNum INT, @Stored INT, @GoodNo INT
SELECT @GoodNo=货品编码, @OrderNum=数量 FROM INSERTED
SELECT @Stored=库存量 FROM 货品信息 WHERE 货品编码=@GoodNo
IF @OrderNum > @Stored --如果订货量超出库存量则回滚所做的操作
begin
RAISERROR('订货量超出库存,不能订货!',7,1) --显示信息
rOLLBACK TRANSACTION --回滚插入操作。
end
GO
*/
go
--1、查找姓李的男性客户信息
select 姓名,性别 from 客户信息 where 姓名 like'李%' and 性别 like'男%'
go
--2、统计08-1-1以后每个销售人员的销售额
select 销售人员编码 ,sum(总金额) as 销售额 from 订单信息 where 订货日期>='08-1-1' group by 销售人员编码
go
/*
--3、查询供应商信息中来自南京的相关信息,并形成一个新的数据表“南京供应商”
select * into 南京供应商 from 供应商信息 where 地址 like'南京%'
go
--4、找出订货量大于10的货品信息
select 货品编码,数量 from 订单信息 where 数量 >'10'
go
*/
--5、查询每种货品订货量大于最小一次订货量的订单信息
select * from 订单信息 as a where 数量>any(select 数量 from 订单信息 as b where a.货品编码=b.货品编码)
go
--6、查找每种货品订货量最小的订单信息
select * from 订单信息 as a where 数量<=all(select 数量 from 订单信息 as b where a.货品编码=b.货品编码)
go
--7、查询每种货品订货量最大的订单信息
select * from 货品信息 as a where ( select 数量 from 订单信息 where 数量>=all(select 数量 from 订单信息 as b where a.货品编码=b.货品编码))
go
--8、利用COMPUTE子句对同一货品编码的订货数量进行求和
SELECT * FROM 订单信息 WHERE 订货日期 >= '2008/01/01' ORDER BY 货品编码
compute SUM(数量) BY 货品编码
go
--9、统计每个销售人员的销售业绩
select 销售人员编码,sum(总金额) from 订单信息 group by 销售人员编码
go
--10、比较两个数的大小
declare @var1 int,@var2 int
set @var1=58
set @var2=80
if @var1!=@var2
if @var1>@var2
print '第一个数比第二个数大。'
else
print '第一个数比第二个数小。'
else
print '二个数相同。'
go
/*
--11、张三的生日为1988/8/18,使用日期函数计算张三的年龄和天数,并输出
--12、创建销售人员的视图并将其中销售工号为1的人员姓名改为“余则成”
create view 销售人员视图
as
select * from 销售人员
go
update 销售人员视图 set 姓名='余则成' where 销售人员编码='1'
go
--13、利用视图实现查询每种货品订货量大于最小一次订货量的订单信息
create view 订货视图
as
select * from 订单信息 as a where 数量>any(select 数量 from 订单信息 as b where a.货品编码=b.货品编码)
go
select * from 订货视图
go
--14、使用游标的@@cursor_rows变量,计算“客户信息”表中客户的数量。假设每个客户有一个唯一的纪录
declare customers insensitive cursor
for select * from 客户信息
open customers
if @@error=0
begin
print '游标打开成功'
print '表中的客户数量为:'+ convert(varchar(3),@@cursor_rows)
end
close customers
deallocate customers
go
--15、创建一个简单的存储过程,查询销售人员编码=’09’的订单信息
CREATE PROCEDURE 订单信息
as
select*from 订单信息 where 销售人员编码='09'
go
--16、创建一个存储过程,实现统计“客户信息”表中指定城市客户的数量,用输入参数来指定城市,用RETURN返回数量
CREATE PROCEDURE Cst_City
@City AS VARCHAR(20), @CountOUT INT OUTPUT
AS
DECLARE customers CURSOR
FOR SELECT 地址 FROM 客户信息
OPEN customers --打开游标
DECLARE @Address VARCHAR(50)
DECLARE @Loop BIT
DECLARE @Count INT
SET @Count=0
IF @@ERROR = 0
BEGIN
WHILE 1=1 --控制循环
BEGIN
FETCH NEXT FROM customers INTO @Address
IF @@FETCH_STATUS = 0 --判断读入是否正确
BEGIN
IF CHARINDEX(@City, @Address)>0
SET @Count=@Count+1
END
ELSE
BREAK
END
PRINT '表中'+@City+'的客户数量为:'+CONVERT(VARCHAR(3), @Count)
END
CLOSE customers --关闭游标
DEALLOCATE customers --释放游标
SET @CountOUT=@Count --建立输出参数值
RETURN @Count --返回参数
GO
--执行存储过程
DECLARE @COUNT1 INT, @COUNT2 INT
EXECUTE @COUNT2=Cst_City '深圳',@COUNT1 OUTPUT
PRINT @COUNT2
PRINT @COUNT1
GO
--17、创建一个简单的DML触发器,当用户试图更新货品信息时,利用它来产生提示信息
create trigger 修改货品信息
on 货品信息
for update
as
raiserror('更新数据表',16,101)
go
--18、当用户从“订单信息”表中删除一个订单时,表示用户退单,即不再订购该货品,在这种情况下,假定添加订单时减少了“货品信息”的库存量,这时,就要将原来的订货数量增加到库存量上
--如果存在则删除
IF EXISTS(SELECT name,type FROM sysobjects WHERE name='Check_库存量' AND type='TR')
DROP TRIGGER Check_库存量
GO
--建立后触发的插入触发器
CREATE TRIGGER Check_库存量 ON 订单信息
for INSERT --后INSERT触发器
AS
DECLARE @OrderNum INT, @Stored INT, @GoodNo INT
SELECT @GoodNo=货品编码, @OrderNum=数量 FROM INSERTED
SELECT @Stored=库存量 FROM 货品信息 WHERE 货品编码=@GoodNo
IF @OrderNum > @Stored --如果订货量超出库存量则回滚所做的操作
begin
RAISERROR('订货量超出库存,不能订货!',7,1) --显示信息
rOLLBACK TRANSACTION --回滚插入操作。
end
GO
*/
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询