0
私はこのエラーが発生しており、何をすべきかわかりません。 また、パラメータ@empIdに基づいて現在の給与を戻す方法はありますか。例えば、私はdbo.getBonusのような関数を呼び出した場合、(3)それは返す必要があります。ここでは5600.000パラメータに基づく戻り値を持つUDFの作成
は、私は、クエリを実行したときに作成される表は次のとおりです。
EmpId Bonus
3 5600.000
4 18500.000
5 15600.000
6 7600.000
エラーメッセージ:
メッセージレベル44、レベル16、状態2、プロシージャgetBonus、行188 関数内に含まれるSELECTステートメントは、クライアントにデータを返すことはできません。
ありがとうございました。
CREATE FUNCTION dbo.getBonus(@empId INT)
RETURNS numeric(10,2)
AS
BEGIN
SELECT C.[Emp Id],
(Salary.Emp_Salary * .1) AS 'Bonus'
FROM
(
SELECT
e.Emp_Id AS "Emp Id",
MAX(Emp_Salary_Change_Year) AS "Change Year"
FROM Employee_Details AS e
INNER JOIN Country AS co ON e.Emp_Country_Id = co.Country_Id
INNER JOIN State AS s ON e.Emp_State_Id = s.State_Id
INNER JOIN Designation AS d ON e.Desig_Id = d.Desig_Id
INNER JOIN Salary AS sa ON e.Emp_Id = sa.Emp_Id
GROUP BY e.Emp_Id) AS C
INNER JOIN Salary ON C.[Change Year] =
Salary.Emp_Salary_Change_Year;
RETURN 2
END
おかげで、しかし、関係なく、私が入れ何のidパラメータは、常に7600.00を返しません。 –
入力パラメータ - @empId: – Nayak
に応じて出力を返すための関数にWHERE句を追加するだけでNayakはうまくいきました。溶液が確認された。 –