表a
Fname Fvalue
基本工资 2000
奖金 1000
加班天数 3
加班费 1001.请问如果我要 得出 基本工资+奖金+加班天数*加班费的结果 怎么得出 莫非是吧fvalue一个个取出 然后计算?2.如果 我有一个“基本工资+奖金+加班天数*加班费”的string 有办法比较快速的得出结果吗?ps:Fname 不是确定的 可编辑
Fname Fvalue
基本工资 2000
奖金 1000
加班天数 3
加班费 1001.请问如果我要 得出 基本工资+奖金+加班天数*加班费的结果 怎么得出 莫非是吧fvalue一个个取出 然后计算?2.如果 我有一个“基本工资+奖金+加班天数*加班费”的string 有办法比较快速的得出结果吗?ps:Fname 不是确定的 可编辑
select 基本工资+奖金+加班天数*加班费 from
(
select case Fname when '基本工资' then Fvalue else 0 end as 基本工资,
select case Fname when '奖金' then Fvalue else 0 end as 奖金,
select case Fname when '加班天数' then Fvalue else 0 as 加班天数,
select case Fname when '加班费' then Fvalue else 0 as 加班费 from a
)
t
----
这样是对 但如果 Fname不确定怎么样
create proc oneselect(@par1 varchar(50),@par2 varchar(50),@par3 varchar(50),@par3 varchar(50))
as
declare @sql varchar(4000)
set @sql='select '+ @par1 + @par2 + @par3*@par4 +' from(
select case Fname when '+ @par1 +' then Fvalue else 0 end as '+ @par1 +
',select case Fname when '+ @par2 +' then Fvalue else 0 end as '+ @par2 +
',select case Fname when '+ @par3 +' then Fvalue else 0 as '+ @par3 +
',select case Fname when '+ @par4 +' then Fvalue else 0 as '+ @par4 + ' from a)'
exec(@sql)