>>>>The error is very explicit. You're missing THEN keyword before inner case starts.
>>>
>>>thank you
>>
>>You're welcome. Hopefully you're close to the solution now.
>
>
>Almost :)
>
>Now, how do I use the function? I'm calling it like this:
>
>
SELECT dbo.GetClaimItemStatus(clm_forwarded, cit_received, (select com_overduedays
> from companies
> inner join Clients on cli_comfk = com_pk
> inner join Claims subclaims on clm_clifk = cli_pk
> where subclaims.clm_pk = claims.clm_pk)) as statusfk
> from ClaimItems inner join Claims on cit_clmfk = clm_pk
>
>and getting this error:
>
>
>Msg 4121, Level 16, State 1, Line 1.
>Cannot find either column "dbo" or the user-defined function or aggregate "dbo.GetClaimItemStatus", or the name is ambiguous.
I posted a way to call this function in my previous message.
For table valued function you need to use CROSS APPLY, e.g.
select T.Fields, F.Fields from myTable T CROSS APPLY dbo.InlineTableValuedFunction (T.Field1, T.Field2) F
If it's not broken, fix it until it is.
My Blog