- 大家好,我需要根据条件更改值的颜色。如果前一列的值小于实际值,则该值应为蓝色,否则应为灰色。我正在使用交叉表,并且列是动态生成的。是否有可能在不更改为静态列的情况下执行此操作?
其他说明:
如果我使用仅包含一个属性的列,则它可以工作。但是,如果我的列包含多个属性,那么它将不起作用。
例如,我想查看过去12个月不同部门的销售情况。如果该列包含多个属性,则Cognos会将当月所有部门的总和与上个月的总和进行比较,并用相同的颜色为该月的所有值着色。
在“添加的图片”中,您可以看到查询结果作为交叉表的输出。
在我的查询中,我创建了一个数据项“ Style”,如果实际月份较大,则显示“ a”,如果其较低月份,则显示“ b”。我将此数据项用于条件样式。
预先感谢
答案 0 :(得分:1)
进行2个查询并加入他们
第一个查询是您当前拥有的
第二个查询是查询1的副本,将用于获取上个月。查询几乎相同,除了我们添加了一个数据项以连接到上个月
这是基于+1月份的值
New data item: [Prior Month] definition = [Month] +1
接下来,联接(构建第三个查询)基于键值,除了查询1中月份的那一部分被设置为JOIN到新数据项中,用于+1个月(让我们调用上个月)查询2(关系应为1.1到0.1,即Q1定义为1.1,Q2定义为0.1)
这第三个查询数据项主要来自查询1,但我们希望查询2中的指标数据代表上个月
现在,您可以比较两个条件,并制作简单的条件样式 如果前一列的值小于实际值,则该值应为蓝色,否则应为灰色
查看此/和单元测试 列出并并列查看指标和上个月的值。然后尝试条件样式
注意:您可能要处理年份变化的第1个月,有多种方法可以执行此操作。但是,这应该可以让您入门,并且如果您不关心第1个月,那么应该可以。
让我知道怎么回事!
其他说明:
再次检查是否已设置条件样式。 前一个月销售的数据项仍在查询3中(根据您编辑商品的顺序,它可能会意外删除)
答案 1 :(得分:0)
给出一个关系数据源,您可以看到您的数据库是否支持滞后和提前。如果是这样,您可以在SQL中使用某种类型来获取您的datepart偏移量。这是针对MSSQL的示例:
http://www.sqlservertutorial.net/sql-server-window-functions/sql-server-lag-function/