我有以下程序上的SQL Server 2005值加空
ALTER proc [dbo].[p_shipavgAddOnUpdate]
as
begin
declare @addon decimal(20,2),@FloorPrice decimal(20,2)
update z
set
@addon = case when pp.mapprice>0
then 0
else
(BasePrice + Mktng) *.027
-- to allow for a higher sale price than the base price
end
,[email protected]
,@FloorPrice = (BasePrice + Mktng + @AddOn)
,@FloorPrice =
CASE WHEN @FloorPrice > COALESCE(pp.mapPrice, 0)
THEN @FloorPrice
ELSE .mapPrice
END
,FloorPrice = @FloorPrice
,FloorOffer = @FloorPrice + FinalShippCost
FROM zshipaverage z
inner join products p on z.sku = p.sku
inner join product_pricing pp on p.productid=pp.product
end
那么PROC会从另一个PROC,它运行了一堆特效的所谓运行,即
exec proc1
exec proc2
... 。 等在一个PROC在此之前,一个
,该baseprice字段设置 在未来PROC,该Mktng字段设置 在这个亲c中的插件,和floorprice正在运行我与记录 作为这样结束后PROC设定 所以floorprice被假设是= baseprice + Mktng +附加组件 :
baseprice = 6.14
mktng = 2.13
addon = NULL
floorprice= 0.00
两个问题; 1.-如果插件为空,我怎么能以0.00的floorprice结束? (nromal ANSI默认设置为 值+ NULL = NULL)
I can't reproduce the effect
2:我是放心的是,在呼叫PROC的程序,以便在运行?
日Thnx
,我不认为你应该在你的更新语句中使用来设置变量,然后他们的值来设置列值。操作顺序是否定义了? –