0
Employee
テーブルSQL Serverの:パラメータ
を受け入れるために、ストアドプロシージャを変更し、以下を達成するには、以下のような既存のストアドプロシージャを変更するであろうSQL文を書く:
- マネージャーを含むパラメータを入力できるようにする
Emp_ID
- 付属のパラメータを使用して
Emp_ID
をqu何のパラメータ値が次のよう 結果が表示されていることを確認マネージャーの姓を含ん
JOIN
として結果文を書き換える
を供給されていない場合ERY
- は、パラメータにゼロの値を割り当てる:
Manager's Last Name Employee's Last Name Employees Hire Date
順マネージャーの姓によってクエリの結果、最近の雇用と従業員の姓
これは、既存のストアドプロシージャのコードです:
CREATE PROCEDURE dbo.sp_GetEmployeeNm
AS
SELECT
Last_Nm, Hire_Dt
FROM
dbo.Employee
WHERE
Mgr_ID IN (SELECT Emp_ID
FROM dbo.Employee
WHERE Emp_ID = 12345)
が正しく、このストアドプロシージャを変更する方法を知っている人はいますか?
これは私が試したものです:
ALTER PROCEDURE dbo.sp_GetEmployeeNm (@Emp_ID INT = 0)
AS
BEGIN
SELECT
m.Last_Nm AS Manager's Last Name,
e.Last_Nm AS Employee's Last Name,
e.Hire_Dt AS Employee's Hire Date
FROM
Employee e
INNER JOIN
Employee m ON e.Emp_ID = m.Mgr_ID
WHERE
e.Emp_ID = 12345
ORDER BY
(m.Last_Nm, e.Hire_Dt, e.Last_Nm) DESC
END
一見あなたはWHERE e.Emp_ID = 12345' WHERE 'に'変更する必要があるように、それが見えますe.Emp_ID = @ Emp_ID'。 –
ありがとう@AndrewMorton – Koda