日期:2014-05-18  浏览次数:20574 次

求一个函数?
问题是这样的
有两个表   jcfy,   fygz
jcfy   有一下字段   a,b,c,d,e,f
fygz   有一下字段   a,y,z   其中z的值有三种情况, '体积 ', '托 ', '不区分 '

现在要一个这样的函数:
通过代人:a,b,c
由jcfy.a=fygz.a   时,

z的值就确定,
如果z的值= '体积 '
则求出:b*y

如果z的值= '托 '
则求出:c*y

如果z的值= '不区分 '
则求出:y

谢谢   在线等!!!

------解决方案--------------------
用case ...when ... end
------解决方案--------------------

select case when z= '体积 ' then b*y,when z= '托 ' then c*y, when z= '不区分 ' then y end as result from jcfy inner join fygz on jcfy.a=fygz.a
------解决方案--------------------
try

Create Table jcfy(a Int, b Int, c Int, d Int, e Int, f Int)
Create Table fygz(a Int, y Int, z Varchar(20))
GO
Create Function F_GetZ(@a Int, @b Int, @c Int)
Returns Int
As
Begin
Declare @z Int

Select
@z = (Case z When '体积 ' Then b*y When '托 ' Then c*y When '不区分 ' Then y End)
From
fygz A
Inner Join
jcfy B
On A.a=B.a
Where B.a=@a And B.b = @b And B.c = @c

Return @z
End