1

我需要修改一个存储过程来更新实时数据库上的价格表。我使用的是 MS SQL Server 2005,存储过程用作 SAP BI 中的查询。

我有这部分:

SET @cmd ='Update PriceList 5'
SET @sql ='UPDATE a SET a.price= round( (b.price*0.9),0), a.currency=b.currency  FROM      ['+@trgDB+'].[dbo].[ITM1] a '
SET @sql =@sql+' INNER JOIN ['+@trgDB+'].[dbo].[ITM1] b ON ( a.ItemCode=b.itemcode AND   b.PriceList=1) '
SET @sql =@sql+' WHERE a.PriceList=5 '
IF @filter IS NOT NULL BEGIN
    SET @sql =@sql+' AND a.[ItemCode] LIKE '+char(39)+@filter+'%'+char(39)+' '
    SET @cmd = @cmd+' ('+@filter+'%'+') '
END 

这将根据过滤器更新每个项目的价格。我需要保持一些项目不变,那么如何在上面的代码中添加 NOT LIKE 'VSK%' AND NOT LIKE 'VFH%'?如果过滤器被忽略并不重要,但是我需要更新每个价格,除了 NOT LIKE 'VSK%' AND NOT LIKE 'VFH%' 。

表 http://qupload.com/images/clipbosjs.jpg

4

0 回答 0