SQL存储过程删除重复记录,保留一个

时间:2013-05-21 19:57:28

标签: sql sql-server stored-procedures duplicates syntax-error

我正在使用3个表tblproducttblstocktblwinkel

productid表格中有外键{​​{1}}和winkelid

tblstock表也有一个字段tblstock,这是一个整数。

我只希望拥有2条外键stockwinkelid的相同组合的1条记录。此记录的股票值包含具有productidwinkelid的相同外键组合的所有其他记录的总和。

所以,我正在尝试删除其中包含相同2个外键的所有其他记录,所以我只保留1个。

我的存储过程一直出现以下错误:

  

Msg 155,Level 15,State 2,Procedure uspRecordsSamenvoegen,Line 11   'int'不是公认的CURSOR选项。

请帮忙吗?

到目前为止,这是我的存储过程:

productid

2 个答案:

答案 0 :(得分:2)

declare stocktotaal int

需要

declare @stocktotaal int

如果没有'@'来声明变量,sql解析器就会设置一个游标。此外,您无法选择变量。您的选择应如下所示:

select @stocktotaal = sum(stock) from ...

答案 1 :(得分:0)

所以你的结果将被捕获:

select WinkelId, ProductId, sum(Stock) as stocktotaal 
from TblStock
group by WinkelId, ProductId