日期:2014-05-18 浏览次数:20638 次
declare @SMM_Pb1 numeric(15,2) declare @SMM_Pb2 numeric(15,2) select @SMM_Pb1=15575 select @SMM_Pb2=22 select FArea,FName,@SMM_Pb1,FWebPrice from IB_PRICEFORMULA =>结果 (我把变量做为公式写到记录了FWebPrice字段的值为@SMM_Pb1,因为@SMM_Pb1是从别的表获取的,还有什么方法设置这样的公式,FWebPrice字段的值也可能设置为@SMM_Pb2) FArea FName @SMM_Pb1 FWebPrice 地区A A 15575.00 @SMM_Pb1 =>想得到的结果 FArea FName @SMM_Pb1 FWebPrice 地区A A 15575.00 15575.00 1.如上想得知正确的结果, 怎么写? 2.假如有列FWebPriceA,FWebPriceB,FWebPriceC, FWebPriceA的公式是FWebPrice*3 FWebPriceB的公式是FWebPriceA/2 FWebPriceC的公式是FWebPriceB+10 该怎么写SQL?declare @SMM_Pb1 numeric(15,2) declare @SMM_Pb2 numeric(15,2) select @SMM_Pb1=15575 select @SMM_Pb2=22 select FArea,FName,@SMM_Pb1,FWebPrice from IB_PRICEFORMULA =>结果 (我把变量做为公式写到记录了FWebPrice字段的值为@SMM_Pb1,因为@SMM_Pb1是从别的表获取的,还有什么方法设置这样的公式,FWebPrice字段的值也可能设置为@SMM_Pb2) FArea FName @SMM_Pb1 FWebPrice 地区A A 15575.00 @SMM_Pb1 =>想得到的结果 FArea FName @SMM_Pb1 FWebPrice 地区A A 15575.00 15575.00 1.如上想得知正确的结果, 怎么写? 2.假如有列FWebPriceA,FWebPriceB,FWebPriceC, FWebPriceA的公式是FWebPrice*3 FWebPriceB的公式是FWebPriceA/2 FWebPriceC的公式是FWebPriceB+10 该怎么写SQL? 不要一直镶套的方式,因为列很多
create table #tb(FName varchar(10) , FWebPrice varchar(10)) insert into #tb values('地区A','@SMM_Pb1') insert into #tb values('地区B','@SMM_Pb2') declare @sql varchar(8000) declare @SMM_Pb1 numeric(15,2) declare @SMM_Pb2 numeric(15,2) select @SMM_Pb1=11 select @SMM_Pb2=22 set @sql='' select @sql=@sql+' when FWebPrice=' +quotename(FWebPrice,'''')+' then '+FWebPrice from #tb set @sql='select FName,case '+@sql+' end as FWebPrice from #tb' print @sql exec('declare @SMM_Pb1 numeric(15,2) declare @SMM_Pb2 numeric(15,2) select @SMM_Pb1=11 select @SMM_Pb2=22 '+@sql) /* FName FWebPrice 地区A 11.00 地区B 22.00 */ 动态