如何在第一个表中插入第一个表中UkupnaCena列的和值,其中Cena等于其他表中的RacunID。例如,如果第一个表中的RacunID等于1,我希望它的RacunID等于UkupnaCena列中所有值的和,其中Cena为1。
桌子:
到目前为止我的程序:

Create procedure sp_RacunUpdate(
    @pRacunID int,
    @pStatusRacuna nvarchar(50),
    @pDatum nvarchar(20),
    @pOpis nvarchar(200),
    @pMesto nvarchar(50),
    @pKupacID int
)
as begin
Declare @pUkupnaCena decimal(20,2)
select @pUkupnaCena=sum(Cena) from Stavka
inner join Racun
on Racun.RacunID=Stavka.RacunID
Where Racun.RacunID=Stavka.RacunID
group by Stavka.RacunID
begin transaction
UPDATE Racun
SET StatusRacuna=@pStatusRacuna, Datum=@pDatum, Opis=@pOpis,Mesto=@pMesto,UkupnaCena=@pUkupnaCena,KupacID=@pKupacID
WHERE RacunID=@pRacunID
IF @@ERROR <> 0
BEGIN
ROLLBACK
END
ELSE
BEGIN
COMMIT
END
END
GO

最佳答案

您可以将更新查询修改为以下内容

UPDATE Racun from Racun
SET UkupnaCena=(select sum(Cena) from Stavka s where s.RacunID= Racun.RacunID), Datum=@pDatum, Opis=@pOpis,Mesto=@pMesto,KupacID=@pKupacID
WHERE RacunID=@pRacunID

08-28 11:39