DB中存储过程的问题

时间:2014-11-19 19:31:11

标签: asp.net sql-server stored-procedures

我有一个存储过程,可以获取特定订单的数据(所有已经使用该订单购买的产品),并且我已经实施了一个评级系统,每个买家可以对他购买的产品进行评级。现在我的问题是,当1买家评价他购买的所有产品(比如3个产品),现在当下一个买家来时,购买所有3个相同的产品,当他进入评级产品的形式时,他得到了评分那些的前一个人的成绩(比如4,5和1年级)。这是我使用的存储过程:

ALTER procedure [dbo].[hsp_Narudzbe_Detalji2]
(
@NarudzbaID int
)
as
select ns.*,p.Naziv,p.Sifra,p.Cijena,ISNULL(o.Ocjena,-1) as Ocjena
from NarudzbeStavke as ns join Proizvodi as p 
on ns.ProizvodID= p.ProizvodID left join ocjene as o 
on o.ProizvodID=p.ProizvodID 
where ns.NarudzbaID = @NarudzbaID 

正如您所看到的,我选择了为特定订单订购的所有产品(其中ns.narudzbaid = @NarudzbaID),我也选择离开加入以查看哪些产品尚未评级。现在我想推出第一位买家的评级,以便第二位买家也可以插入他的成绩? 有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您还必须在ocjene表中存储orderid和buyerid,并且必须按以下方式加入:

左连接

ocjene as o

on

o.ProizvodID = p.ProizvodID AND

o.buyerid = ns。[买方/客户ID字段] AND

o.NarudzbaID = ns.NarudzbaID