我是Spotfire的新手(使用7.7),在完成一项简单任务时遇到障碍,因此希望获得一些帮助。
我需要一定数量的客户来计划连续几年的服务日期。 由于用户将使用不同的日期过滤器,因此我创建了一个MaxServiceDate计算列,以根据过滤器为我提供最大日期,然后减去一年来为我提供PreviousYear计算列。
然后我的想法是对具有与MaxServiceDate和PreviousYear匹配的ServiceDate的所有CustomerID进行唯一计数。我遇到的问题是我不知道如何分组或修复CustomerID以便遍历ServiceDates并检查它们的日期是否符合我的条件。
感谢您的帮助。
样本数据:
答案 0 :(得分:0)
您可以使用具有max(ServiceDate)和客户ID的数据透视转换创建辅助表。将表与原始表连接起来,以便在主表上拥有每个客户的最大日期。然后根据“ Max(ServiceDate)”和“服务日期”进行计算列,以确定是否> 365天。
答案 1 :(得分:0)
我认为以下计算列可以满足您的需求:
If((Max(Year([ServiceDate])) over (Intersect([CustomerID])) - Min(Year([ServiceDate])) over (Intersect([CustomerID])) + 1)=UniqueCount(Year([ServiceDate])) over (Intersect([CustomerID])),"good","bad")
对于每个客户,取其最大服务日期年份,减去其最小服务日期年份,然后加+1。此数字应与与该客户的服务日期相关的不同年份的数量相匹配。
这将告诉您特定客户(至少在您拥有该客户的情况下)是否连续两年提供服务。