如何在 s-s-rS 中创建一个子组,将其他组的特定行的值相加?
Posted
技术标签:
【中文标题】如何在 s-s-rS 中创建一个子组,将其他组的特定行的值相加?【英文标题】:How can I create a sub-group in s-s-rS which sums the values of specific rows from other groups? 【发布时间】:2019-11-15 15:10:39 【问题描述】:我在 Microsoft Visual Studio 2008 中有一个由大型 SQL 查询驱动的 s-s-rS 报告。有一个主要组包括两个部分,每个部分都包含几行数据。我想在该组中创建第三个部分(下面的 Z),它将来自同一组的不同部分的特定行的值相加。例子:
【问题讨论】:
【参考方案1】:我个人会在您的数据集中执行此操作,例如..
SELECT Category, Location, Results INTO #t FROM ([existing query here]) q
SELECT * FROM #t
UNION ALL
SELECT 'Z', '1 & 3', SUM(Results) FROM #t WHERE Category='X' and Location IN (1,3)
UNION ALL
SELECT 'Z', '2 & 4', SUM(Results) FROM #t WHERE Category='Y' and Location IN (2,4)
这意味着数据集将包含您的所有数据,并且不需要在报告中进行任何其他工作。
您可以直接在报告中执行类似的操作,方法是在主组之外添加更多行,然后设置表达式以汇总报告的相关位,但通过 sql 更容易使用和调试 (IMO)
【讨论】:
老实说,我没有考虑将整个查询放入临时表中然后执行 UNION... 我想我必须复制/粘贴整个内容。以上是关于如何在 s-s-rS 中创建一个子组,将其他组的特定行的值相加?的主要内容,如果未能解决你的问题,请参考以下文章
在 s-s-rS 中,如何将父报表项的值与子组中的报表项进行比较?