我想知道如何根据存储过程的结果集选择参数。
我的代码看起来像这样:
CREATE PROCEDURE usp_UserInformation (@ReportRunDate DATE = NULL)
AS
WITH CTE AS (
SELECT -- some fields
FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID
WHERE RegisteredDate = DATEADD(MONTH, DATEDIFF(MONTH, -1, @ReportRunDate) - 2, -1)
--I'll output the result set after applying all the logic like
SELECT UserID, UserName, DOJ
FROM CTE
现在,当用户在报告中选择日期时,我创建了另一个参数并尝试使用“从查询中获取值”从“可用值”中检索记录。我想显示上述查询结果集中的用户 ID 列表,并允许用户在此基础上进行 SELECT。
更新:我创建了另一个存储过程,因为没有其他选择。现在我的问题是,如何将第二个存储过程值传递给 WHERE 子句中的第一个值?
CREATE PROCEDURE usp_UserInformation (@ReportRunDate DATE = NULL)
AS
WITH CTE AS (
SELECT -- some fields
FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID
WHERE RegisteredDate = DATEADD(MONTH, DATEDIFF(MONTH, -1, @ReportRunDate) - 2, -1)
--I'll output the result set after applying all the logic like
SELECT User_ID, UserName, DOJ
FROM CTE
WHERE User_ID = EXEC usp_Get_UserID
我正在寻找这样的东西,用户可以先选择 ID,然后在报告中选择他选择的任何日期。
PS:我不允许编写内联 SQL,只允许使用 SP。我不想为同一个报告创建两个 SP。