【发布时间】:2016-02-26 09:20:38
【问题描述】:
我想创建一个以表值函数为列的存储过程。 我想使用其他列值之一作为函数的参数。
ALTER PROCEDURE [dbo].[AuditReportLeaseID]
@leaseID int
AS
BEGIN
SET NOCOUNT ON;
SELECT
a.assetID as Asset, a.Location,
CONVERT(VARCHAR, a.auditdate, 101) AS Date,
a.qtyaudit AS Qty,
c.classname AS Class, a.grade AS Grade,
a.serialnumber AS [S/N],
a.materialdescription AS Description, a.Notes,
(SELECT tf.AD
FROM fGetAuditDescrConcat(a.assetId) tf) AS AuditDescription
FROM
audit a
LEFT OUTER JOIN
ORDER_DETAILS od ON a.assetID = od.assetId
INNER JOIN
class c ON a.classid = c.classid
WHERE
a.classID = c.classID
AND a.leaseID = @leaseID
ORDER BY
class, grade, a.materialDescription
END
此过程将返回多行,我想使用第一列 a.assetID(即 varchar(64))的值作为 fGetAuditDescrConcat 函数的参数。
这可能吗?
【问题讨论】:
-
你试试会发生什么???
-
对不起 - 它不允许我编译 proc。它对 (a.assetid) 不满意。 '.' 附近的语法不正确。
标签: sql-server database stored-procedures parameter-passing table-functions