问题描述
我想通过将相同的参数(SP_COLLECTION
和SP_REPORT
)传递给两个过程来从第一个过程(D1
)中调用第二个过程(DIV
)
R_SP_REPORT
:第一个过程
CREATE PROC R_SP_REPORT
@D1 DATETIME,@DIV VARCHAR(10)
AS
BEGIN
SELECT
A.TRNDATE,A.DIVISION,A.USER,... etc...
FROM
REPORT A
INNER JOIN
REPORT_MAIN B ON A.ID = B.ID
AND A.DIVISION = B.DIV
WHERE
LEFT(A.ID,2) IN ('SI')
AND a.TRNDATE = @d1
AND a.DIVISION = @div
GROUP BY
TRNDATE,DIVISION,USER
--I want to call here R_SP_COLLECTION stored procedure
BEGIN
EXEC R_SP_COLLECTION @d1 = @d1,@div = @div // Do something here.. I am not gatting data from
//second stored procedure..
END
END
R_SP_COLLECTION
:第二步
CREATE PROCEDURE R_SP_COLLECTION
@D1 DATETIME,@DIV VARCHAR(10)
AS
BEGIN
SELECT
PostDateTime,NAME
FROM
SalesEntry
WHERE
PostDateTime = @d1
AND DIVISION = @div
END
我正在从第一个过程@D1
传递@Div
和R_SP_REPORT
参数,我想将它们发送到{{1}的PostDateTime
和Division
}
那我该怎么做呢?需要帮助
更新:出现此错误后,我尝试按如下所示在查询中转换日期时间,但仍然收到相同的错误:
R_SP_COLLECTION
警告:通过聚合或其他SET操作消除了空值。
信息8114,级别16,状态5,过程R_SP_COLLECTION,第0行
将数据类型nvarchar转换为datetime时出错
解决方法
对于sql server,请尝试: 执行R_SP_COLLECTION @ D1,@ DIV