从多个查询中获取一个值SQL

时间:2016-02-26 22:11:28

标签: sql asp.net sql-server

我想从不同的SELECT查询中获取一个值,我创建了以下存储过程,但它一直给我一个错误,我将其添加到SQLDATAADAPTER中,当我测试查询添加值时,它给了我转换从nvarchar到int的错误,但我没有在存储过程中使用int。

所以我做了4个小选项来获得一个最终值(一个项目编号),每个参数都将绑定到一个Dropdownlist,它将传递ID,但是我不知道这是不是最好的方法,或者我应该做些不同的事情。

        @Group as nvarchar(50),
        @Type as nvarchar(50),
        @Brand as nvarchar(50),
        @Art as nvarchar(50),
        @Final as nvarchar(50) OUTPUT
        AS
    begin
        SET NOCOUNT ON;
        SELECT @group = codigo_group FROM item_group WHERE     (group_art_id = @group)
        SELECT @type = codigo_type FROM item_type WHERE (type_art_id = @type)
        SELECT @brand = codigo_brand FROM item_brand WHERE (brand_id = @brand)
        SELECT @Art = format(COUNT(items.brand_id) +1, '0000')  From items where brand_id=@brand

        Select @Final= @group + '-' + @type + '-' + @brand + @Art
        RETURN @Final

        END

2 个答案:

答案 0 :(得分:0)

我猜你有一个存储过程,因为没有返回声明。

只需删除最终的return,因为该值会转到@final

您可以将其替换为return 0或其他整数。存储过程返回一个必须为整数的状态值。

如果您想返回值,请使用create function并删除输出参数。

答案 1 :(得分:0)

我没有足够的代表来简单评论,但我怀疑你收到错误的原因是因为你的程序中有RETURN @Final。 RETURN是一个状态(INT)。

有关详细信息,请参阅以下内容:https://msdn.microsoft.com/en-us/library/ms378371(v=sql.110).aspx