- SQL code
declare @SMM_Pb1 numeric(15,2) declare @SMM_Pb2 numeric(15,2) select @SMM_Pb1=15575select @SMM_Pb2=22select FArea,FName,@SMM_Pb1,FWebPrice from IB_PRICEFORMULA=>结果 ([email protected]MM_Pb1,[email protected]_Pb1是从别的表获取的,还有什么方法设置这样的公式,[email protected]_Pb2) FArea FName @SMM_Pb1 FWebPrice 地区A A 15575.00 @SMM_Pb1=>想得到的结果FArea FName @SMM_Pb1 FWebPrice 地区A A 15575.00 15575.001.如上想得知正确的结果, 怎么写?2.假如有列FWebPriceA,FWebPriceB,FWebPriceC,FWebPriceA的公式是FWebPrice*3 FWebPriceB的公式是FWebPriceA/2FWebPriceC的公式是FWebPriceB+10该怎么写SQL?declare @SMM_Pb1 numeric(15,2) declare @SMM_Pb2 numeric(15,2) select @SMM_Pb1=15575select @SMM_Pb2=22select FArea,FName,@SMM_Pb1,FWebPrice from IB_PRICEFORMULA=>结果 ([email protected]MM_Pb1,[email protected]_Pb1是从别的表获取的,还有什么方法设置这样的公式,[email protected]_Pb2) FArea FName @SMM_Pb1 FWebPrice 地区A A 15575.00 @SMM_Pb1=>想得到的结果FArea FName @SMM_Pb1 FWebPrice 地区A A 15575.00 15575.001.如上想得知正确的结果, 怎么写?2.假如有列FWebPriceA,FWebPriceB,FWebPriceC,FWebPriceA的公式是FWebPrice*3 FWebPriceB的公式是FWebPriceA/2FWebPriceC的公式是FWebPriceB+10该怎么写SQL? 不要一直镶套的方式,因为列很多
------解决方案--------------------
- SQL code
create table #tb(FName varchar(10) , FWebPrice varchar(10))insert into #tb values('地区A',[email protected]_Pb1')insert into #tb values('地区B',[email protected]_Pb2')declare @sql varchar(8000)declare @SMM_Pb1 numeric(15,2) declare @SMM_Pb2 numeric(15,2) select @SMM_Pb1=11select @SMM_Pb2=22set @sql='' select @[email protected]+' when FWebPrice=' +quotename(FWebPrice,'''')+' then '+FWebPrice from #tbset @sql='select FName,case [email protected]+' end as FWebPrice from #tb'print @sqlexec('declare @SMM_Pb1 numeric(15,2) declare @SMM_Pb2 numeric(15,2) select @SMM_Pb1=11select @SMM_Pb2=22 [email protected]) /* FName FWebPrice地区A 11.00地区B 22.00 */动态