永发信息网

用T-SQL语句实现存储过程查询 求正解

答案:1  悬赏:20  手机版
解决时间 2021-07-20 22:39

在公司管理数据库中创建存储过程product_order ,要求实现如下功能:根据产品名称,查询该产品的订货情况,如果该产品没有订货,则显示“此产品目前没有订单!”,否则显示订购该产品的订购明细表,包括产品名、数量、单价、库存量、订货日期。具体表如下:

产品信息表(product) 产品ID,产品名,单价,库存量

订单信息表(p_order) 订单ID,产品ID,数量,客户ID,订货日期

客户信息表(customer) 客户ID ,公司名称,联系人姓名,联系方式,地址,邮编


create proc product_order
@pname varchar(8)
as
@pname1 varchar(8)
declare @pid varchar(8)
declare @poid varchar(8)
declare @pq varchar(8)
declare @kcl varchar(8)
declare @pprice money
declare @podate datetime
if exists (select @pname=产品名,@poid=p_order.订单ID,@pid=p_order.产品ID,@pq=数量,@kcl=库存量,@pprice=单价,@podate=订货日期
from p_order join customer on p_order.客户ID=customer.客户ID
join product on p_order.产品ID=product.产品ID
where @pname1=产品名)
print @pname,@pq,@kcl
print @pprice
print @podate
else
print '此公司没有订单!'

这是我写的代码(有错误) 帮忙分析一下 并求正解

最佳答案

错误:exlsts 后面应该是个结果集!


也许你想一边查询,一边取值,但是"向变量赋值的 SELECt 语句不能与数据检索操作结合使用。"


正解: (有些东西自己改哈!,自己多想哈,别遇到问题就问人)





use Stroe
go
if exists(select * from sysobjects where name='product_order')
drop proc product_order
go


create proc product_order
@pname nvarchar(50)
as
-------产品名称--------
declare @name nvarchar(50)
---- 产品ID ----
declare @pid int
-------订单ID----------
declare @poid int
----------数量----------------
declare @pq int
---------库存-------------
declare @kcl int
------价格-----
declare @pprice money
--------日期----------------
declare @podate datetime
-------判断有没有订单!-----------
if exists(select p.p_name from product p right join p_order pr on
p.PID=pr.PID left join customer c on
c.CID=pr.r_CID where p.p_name=@pname)
begin
---------这里取数据!---------
select @name= p.p_name,@pid=p.PID ,
@poid=pr.RID ,@pq= pr.r_count ,
@kcl=p.p_Num ,@pprice=p.p_price ,
@podate=pr.r_date
from product p right join p_order pr on
p.PID=pr.PID left join customer c on
c.CID=pr.r_CID where p.p_name=@pname
print '这里你自己弄'
print '这里你自己弄'
end
else
print '该产品没有订单'
go


exec product_order '可口可乐'



我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
CF一个爱心手镭要多少钱?
对于“月光一族”的做法,如何评价
如果第一胎是因为溶血症<胎死宫内三个半月>
CF礼仪差了后就不会好了吗?
90后的人为什么经常被评头论足?
什么是尊严?
布鲁斯口琴选什么调
武昌区武汉武昌区水果湖街机安社区网格化管理
古代人用什麽刷牙的?
冬季搭配什么食物最有营养。 请高手解答?
非主流 韩国 日本动漫不错的音乐
名字李璐璐,我想改名字。
鼎城区常德腾记九三鸭霸王(双潭路店)地址在哪
布衣神相 十师妹谁演的
为什么现在的人越来越矮了;
推荐资讯
初恋,网恋,异地恋,怎么办??
在家里无聊干事什么最有趣?
PSP3000大家觉得好不好,具体好在哪?
女人经常做什么
什么公司名字最具创意?
诺基亚5611下载好的游戏不能玩
1+1=? ....一加一等于几?
农场问题,以下是截图``
支付宝的账户设置在哪,打开支付宝账户以后,在
收到一中奖信息是不是真的
谁愿意送几颗QQ音速种子给我谢谢了!!!
武林外传里105级+12Yy武器上+13会掉么?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?