0
SQL 2000の場合:SQL UDFのヘルプが必要ですか?
入力基準に応じて5つのフィールドのいずれかの値を取得する動的UDFを作成しようとしています。ここで私はこれまで持っているものです。
CREATE FUNCTION dbo.fBudgetBid (@sJob int, @sCO nvarchar(10), @sCat nvarchar(10))
RETURNS float
AS
BEGIN
Declare @ERC float
Set @ERC = Case @sCat
WHEN 'Field' Then Select [Field] From [dbo].[Estimate] Where [Job] = @sJob AND [CO] = @sCO
WHEN 'Eng' Then Select [Eng] From [dbo].[Estimate] Where [Job] = @sJob AND [CO] = @sCO
WHEN 'PM' Then Select [PM] From [dbo].[Estimate] Where [Job] = @sJob AND [CO] = @sCO
WHEN 'Shop' Then Select [Shop] From [dbo].[Estimate] Where [Job] = @sJob AND [CO] = @sCO
WHEN 'Purch' Then Select [Purch] From [dbo].[Estimate] Where [Job] = @sJob AND [CO] = @sCO
END
Return @ERC
END
私は値を返すために、単一のSELECTステートメントを使用している、と私はTHEN構造がハードコードされた値を返す場合を使用していました。 2つを混ぜ合わせる運がない。 **名前は無実を守るために変更されました。 **
更新:以下のように動作しました。カッコは世界のすべての違いを作りました。
BEGIN
Return (Case @sCat
WHEN 'Field' Then (Select [Field] From [dbo].[Estimate] Where [Job] = @sJob AND [CO] = @sCO)
WHEN 'Eng' Then (Select [Eng] From [dbo].[Estimate] Where [Job] = @sJob AND [CO] = @sCO)
WHEN 'PM' Then (Select [PM] From [dbo].[Estimate] Where [Job] = @sJob AND [CO] = @sCO)
WHEN 'Shop' Then (Select [Shop] From [dbo].[Estimate] Where [Job] = @sJob AND [CO] = @sCO)
WHEN 'Purch' Then (Select [Purch] From [dbo].[Estimate] Where [Job] = @sJob AND [] ] = @sCO)
END)
END