使用Cognos 10.2.2 Report Studio,我创建了一个摘要报告,显示每天运行Total#Customers和Total#Customers。然后我收到第二个请求,要求报告默认显示过去7天。
我创建了一个提示宏,以便在报表打开时默认显示最近7天,但如果用户想要运行特定日期范围,则提供提示选择。
我用这个提示宏似乎工作:
[Date Enrollment] between #prompt ('Start Date', 'date', '[Start Date Current Week]')# and #prompt ('End Date', 'date', '[End Date Current Week]')#
但是,用户希望Running Total#Customers显示从开始日期注册到上次注册日期的运行总计 - 而不是过去7天。
使用此宏,运行总计仅显示图表上显示的日期。她确实希望每天的Total#Customers默认为7天(这就是我创建宏的原因),但是能够更改为开始和结束日期。
我附上了报告的图片。黄色条表用于在特定日期注册的#个顾客。蓝色条目前仅为图表上显示的日期提供运行总计。请求是运行总计,默认情况下显示所有注册日期(数据当前可追溯到2018年5月),#customer enrollment显示按天计算的总注册量。
您遇到此问题,因为您正在过滤提供图表的查询以排除除提示中提供的天数之外的所有记录。对于运行总计来处理所有值,则在计算发生时必须存在所有值。过滤器阻止了这一点。
有一个解决方案。您必须使用嵌套查询。这相当于在SQL中使用子查询或CTE。以下是步骤:
作为解释,请考虑源查询的输出。如果没有过滤器,它现在可以在数据库中每天输出客户和每天运行的总数。一旦这两个数字都在日期级别计算,我们可以将其过滤到用户关心的更高级别查询的日期。