- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一份 SSRS 报告,显示按财政年度、财政季度和业务类型分组的总收入。我需要添加最后一列来计算构成总收入的行数,其中每行代表一个企业。
基本上,我需要知道特定业务类型中有多少个体业务占该时间范围内的总数。下面我会详细解释。
首先是提供报表数据的存储过程:
SELECT
id
,assess_year
,CASE
WHEN MONTH(date_received) IN (7,8,9) THEN 1
WHEN MONTH(date_received) IN (10, 11, 12) THEN 2
WHEN MONTH(date_received) IN (1, 2, 3) THEN 3
WHEN MONTH(date_received) IN (4, 5, 6) THEN 3
WHEN date_received is null THEN 0
ELSE 0
END as Fiscal_Quarter
,s_gross_revenue
,CASE
WHEN LEFT(segment, 1) = 'A' THEN 'Accommodations'
WHEN segment BETWEEN 'B100' AND 'B699' THEN 'Restaurant'
WHEN segment BETWEEN 'B700' AND 'B999' THEN 'Retail'
WHEN LEFT(segment, 1) = 'C' THEN 'Attractions/Recreation'
WHEN LEFT(segment, 1) = 'D' THEN 'Travel Services'
WHEN LEFT(segment, 1) = 'E' THEN 'Rental Cars'
WHEN LEFT(segment, 1) = 'N' THEN 'Other'
ELSE 'UNDEFINED'
END as Segement
FROM mytable
WHERE s_gross_revenue >0 AND assess_year IS NOT NULL
AND assess_year <> '' AND segment IS NOT NULL AND segment <>''
ORDER BY ASSESS_YEAR, FISCAL_QUARTER, SEGEMENT
我附上了一张图片 (Raw Data Image)显示过程返回的原始数据的示例。
我在 SSRS 报告中按年、季度和业务类型进行所有分组。
我只需要一个公式或分组来计算构成总收入的每个业务的所有行。
我还附上了报告的图片(SSRS Report Image)在行计数应该去的末尾有空列。
因此,在 SSRS 报告图像中,2014/15 财年和第一财季的业务类型“住宿”在最后一列中的行数应为 4455,因为有 4455 家单独的企业被列为住宿2014/15 年第一季度的收入。我只是不知道如何根据 SSRS 中的特定条件进行行计数。
(另外,我知道季度在 SQL 中看起来很奇怪,我们的营业年度从 7 月开始)
最佳答案
如果我正确理解你的问题并且你使用的是 SQL Server 2008+,那么你可以使用 OVER(...)
子句做 COUNT(...)
同时保留您的详细数据。
对于业务计数,它看起来像:
COUNT(*) OVER (PARTITION BY assess_year, Fiscal_quarter, Segement)
这是完全修改后的查询,但上面的部分实际上是唯一的变化:
SELECT
id
,assess_year
,Fiscal_Quarter
,s_gross_revenue
,Segement
,COUNT(*) OVER (PARTITION BY assess_year, Fiscal_quarter, Segement) BusinessCount
FROM (
SELECT
id
,assess_year
,CASE
WHEN MONTH(date_received) IN (7,8,9) THEN 1
WHEN MONTH(date_received) IN (10, 11, 12) THEN 2
WHEN MONTH(date_received) IN (1, 2, 3) THEN 3
WHEN MONTH(date_received) IN (4, 5, 6) THEN 4
WHEN date_received is null THEN 0
ELSE 0
END as Fiscal_Quarter
,s_gross_revenue
,CASE
WHEN LEFT(segment, 1) = 'A' THEN 'Accommodations'
WHEN segment BETWEEN 'B100' AND 'B699' THEN 'Restaurant'
WHEN segment BETWEEN 'B700' AND 'B999' THEN 'Retail'
WHEN LEFT(segment, 1) = 'C' THEN 'Attractions/Recreation'
WHEN LEFT(segment, 1) = 'D' THEN 'Travel Services'
WHEN LEFT(segment, 1) = 'E' THEN 'Rental Cars'
WHEN LEFT(segment, 1) = 'N' THEN 'Other'
ELSE 'UNDEFINED'
END as Segement
FROM mytable
WHERE s_gross_revenue > 0
AND ISNULL(assess_year,'') <> ''
AND ISNULL(segement,'') <> ''
) data
ORDER BY ASSESS_YEAR, FISCAL_QUARTER, SEGEMENT
我还对您的 where 子句进行了轻微的句法更改,这是相同的逻辑,但是是一种简写方式。而不是检查是否 SEGEMENT
和 ASSESS_YEAR
是 NOT NULL AND NOT ''
在单独的语句中,您可以将它们组合成一个 ISNULL(...,'') <> ''
如果SEGEMENT
和 ASSESS_YEAR
是文本类型值,否则你将不得不使用 COALESCE(...)
完成同样的事情。 ISNULL(...)
可以替换为COALESCE(...)
如果首选。
这也完全可以通过简单地使用 count(<field name>)
来实现。在 SSRS 报告的 id 列中。它应该给你相同的结果。
关于sql-server - 如何使用 SSRS 中的一组特定数据进行行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36924213/
我有一个大型 SSRS 2008 服务器报告项目(超过 200 个报告)。目前我公司的策略已经改变,我们希望将这些服务器报告转换为客户端报告。 所有服务器报告都使用存储过程(或在某些情况下来自 SQL
我有一个 SSRS 2008 R2 报告,它在表格中使用了这个表达式: =Lookup(Fields!DataSet1Date.Value, Fields!DataSet2Date.Value, Fi
我在 SSRS 报告上有一个 tablix,它从存储过程中获取数据。 当没有数据存在时,我试图向用户显示一条消息,例如“**此报告没有数据* ”。我可以通过在 **NoRowsMessage 中指定此
我试图让这个专栏聊天的标 checkout 现在专栏基地,就像下面的第二张图片一样。然而,该解决方案并不完全有效,因为它歪曲了其余信息。 有没有人知道实现这一目标的适当方法,这不是直截了当的,这很令人
如何获取 SSRS 报告以显示网页 View ? 当我转到 SSRS 报告页面时,它没有显示网页 View 。它显示了数据源、数据集和报告文件夹的列表。 进入报告文件夹后,我可以通过单击它们来调用报告
我正在寻找一种方法来从我的 SSRS 报告中获取版本信息。我有几个环境,希望能够比较在这些环境中部署了哪个报告版本。在 SSIS 中,这非常容易,因为每个 SSIS 包在修改和保护后都会获得一个新版本
我有一个作为 SSRS 报告后端运行的存储过程(它对值进行透视和反透视)。用户提供 2 个输入(BeginRange 和 EndRange)。 结果会根据用户输入而变化,因此我也需要在报告中反射(re
我一直在网上寻找一种在 SSRS (2008 R2) 中完全组合数据集的方法。 基本上,我需要创建一个由多个不同数据集(都具有如下相同的列)组成的表和图,这些数据集是从多个 sql 服务器检索的(防止
我有一份包含多个数据集的报告。不同数据集中的不同字段用于报告的不同位置。 在报告的一部分中,我需要使用两个不同数据集中的字段进行计算。这在表达式中可能吗? 我可以以某种方式在表达式中引用该字段所在的数
我在 Business Intelligence Studio 2008 中内置了一个 RDL 报告,但遇到了不需要的分页符问题。 我有一个数据集,其中包含一个带有一些汇总数据的单表。我已经添加了一个
解决方案 SSRS - How to build a simple multi-column report? 表示报表属性下有一个布局选项卡。我已经用谷歌搜索了这个主题,并且在多个地方都提到了相同的菜
我在 Sql Server Reporting Services (SSRS) 2008 R2 中运行报表时遇到问题。 在设置站点、创建一些用户并上传一些报告之后,我选择了一个要运行的报告,输入我的参
我有一个包含多个行组的矩阵的 SSRS (2008 R2) 报告。我需要扩展所有其他组,同时只有一个切换项。我隐藏所有必要的组,并在我需要的文本框中设置切换项。它在 VisualStudio 中运行良
我在 SSRS 中有报告,我可以使用以下表达式交替行颜色: =IIF(ROWNUMBER(NOTHING) MOD 2, "LightSteelBlue","WhiteSmoke") 这很好用。但是,
啊啊! 受不了,我自己也想不通...... 我在报告中的数字格式中使用了它: '€' #,0.00;('€' #,0.00) 格式为 € 1,212.89 这不完全是我想要的,因为我想要 € 1.21
我有一个简单的 SSRS 报告,显示一个表中的数据。我想要做的是在下拉列表中显示与该表不同的列表,供用户选择。如果我只使用一个数据集,我可以让它显示,但它会多次显示该列中的值。 示例 Bob Bob
SSRS 2008 已经运行了很长时间。 我们已经在同一台服务器上安装了 SSRS 2012,它似乎有点破坏了 SSRS 2008 共享点模式。 所有 .rdl 和 .rsds 文件不再与服务器“关联
我们正在从 Crystal Reports 迁移我们的报告至 SSRS .在 Crystal 报表中,我们使用 变量 至 动态 生成我们的文件名,以便当报告通过电子邮件发送时,文件具有报告名称和执行日
我想将一些文本加粗并加下划线,如果我的数据库中的字段值为“HD” 我的意思是,我在数据库中有两个文件。文本 1 和标题。我在报告中显示 Text1,如果 Header 的值为“HD”,则 Text1
我正在使用 BIDS 和 SQL Server Reporting Services (SSRS) 2008 R2 来构建报告。我希望每个类别都显示为单独的表格/网格。 重要提示:列(CELERY、E
我是一名优秀的程序员,十分优秀!