将结果分组到存储过程中

时间:2016-03-08 19:06:32

标签: sql-server tsql stored-procedures

我有一个返回表的存储过程。该表中的一列是T-SQL函数的结果。该函数根据ID返回0或1。存储过程接受以XML格式存储的ID。

这个函数非常复杂,所以我在这里省略它,但基本上函数ForeignVendor获取一个ID并返回0或1。

该函数接受一个xml参数并返回一个表。我需要这个功能。我希望重用它。

这是功能:

ALTER PROCEDURE ForeignVendors
    @VendorIDs xml
AS
BEGIN
    SET NOCOUNT ON;

    SELECT 
        VEN_POName, 
        T.Item.value('@VendorID[1]', 'varchar(10)') AS "VendorID", 
        ForeignVendor(T.Item.value('@VendorID[1]', 'varchar(10)')) AS "ForeignFlag"
    FROM 
        VEN V
    JOIN 
        @VendorIDs.nodes('/Root/Vendor') AS T(Item) ON V.VEN_VendorID = T.Item.value('@VendorID[1]', 'varchar(10)')
END

我可以这样称呼它

exec [Rotair_ForeignVendors] N'<Root><Vendor VendorID="000010"/><Vendor VendorID="000011"/><Vendor VendorID="000198"/><Vendor VendorID="000021"/></Root>'

然后回来

NEMITZ TOOL CO.         000021  0
P & W CANADA HELICOPTER 000198  1
SHOP                    000011  0
ILS                     000010  0

一份报告需要知道最后一列中是否存在任何1。我试图通过查询将结果传递给一个组,但这不起作用。

有关处理此问题的最有效方法的任何建议吗?

0 个答案:

没有答案