开发者社区 问答 正文

在MS Reporting Services中执行动态子查询的最佳方法?

我是SQL Server Reporting Services的新手,并且想知道执行以下操作的最佳方法:

查询以获取流行ID列表 对每个项目进行子查询以从另一个表获取属性 理想情况下,最终报告列应如下所示:

[ID] [property1] [property2] [SELECT COUNT(*) FROM AnotherTable WHERE ForeignID=ID] 也许可以构建一个大型SQL查询来一次性完成所有操作,但我更希望将其分隔开。是否推荐编写一种VB函数以对每一行执行子查询的方法?谢谢你的帮助。

sql -server- reporting-services 服务 报告

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-15 17:44:12 368 分享 版权
1 条回答
写回答
取消 提交回答
  • 最简单的方法是这样的:

    select , (select count() from tbl2 t2 where t2.tbl1ID = t1.tbl1ID) as cnt from tbl1 t1 这是一个可行的版本(使用表变量):

    declare @tbl1 table ( tbl1ID int, prop1 varchar(1), prop2 varchar(2) )

    declare @tbl2 table ( tbl2ID int, tbl1ID int )

    select , (select count() from @tbl2 t2 where t2.tbl1ID = t1.tbl1ID) as cnt from @tbl1 t1 显然,这只是一个原始示例-适用标准规则,例如不要选择*,等等。

    2019-11-15 17:45:48
    赞同 展开评论