首页 文章

构建一个SSRS数据集,该数据集根据创建临时表以存储结果的存储过程的结果查询数据?

提问于
浏览
1

我需要构建一个SSRS报告,显示SQL Azure表中的查询结果 . 但是,我的where条件之一将检查从存储过程(exec team param1,param2)结果集中提取的数据 . 添加到复杂的是存储过程创建临时表( tempteam )来存储结果 . 如何为我需要的数据编写查询,以指定where子句中的 tempteam 内容?

示例代码

exec team 9596, 2

select * from tempteam

Tempteam样本结果

consid
        9596
        23456
        24354
        20965
        ....
        ....
        ....

2 回答

  • 2

    你不能只在查询的 WHERE 子句中使用"TEMP"表吗?

    SELECT * 
    FROM SOME_TABLE 
    WHERE ID IN (SELECT consid FROM tempteam)
    

    我没有't think the 2543094 table is actually a normal SQL Temporary table since it doesn'在它前面有一个#标签( #tempteam ) - 看起来它是一个存储在数据库中的实际表 .

  • 1

    这是您可以使用的一个选项:

    EXEC('EXEC team 9596, 2; select * from tempteam')
    

    或参数化:

    EXEC('EXEC team ' + @p1 + ',' + @p2 + '; select * from tempteam')
    

    完全重复:

    create table test(f1 varchar(256) null)
    go
    create proc sp_test(@p varchar(256) = 'Hello ')
    as
        insert test
        select @p
        return 1
    go
    
    declare @p varchar(256) = 'World'
    
    EXEC('EXEC sp_test @p = ''Hello ''; select * from test')
    EXEC('EXEC sp_test @p = ' + @p + '; select * from test')
    
    drop proc sp_test
    go
    drop table test
    go
    

相关问题