Db2 计算值来回移动的值组的最大值(日期)

Db2 计算值来回移动的值组的最大值(日期),db2,business-intelligence,cognos,Db2,Business Intelligence,Cognos,我还有另一个挑战,我正在努力解决,但还无法找到解决方案。下面是一个场景。请原谅,如果它在发布时弄乱了格式 ACCT_NUM CERT_ID Code Date Desired Output A 1 10 1/1/2007 1/1/2008 A 1 10 1/1/2008 1/1/2008 A 1 20 1/1/2009 1/1/201

我还有另一个挑战,我正在努力解决,但还无法找到解决方案。下面是一个场景。请原谅,如果它在发布时弄乱了格式

  ACCT_NUM  CERT_ID  Code    Date    Desired Output 
      A        1      10   1/1/2007    1/1/2008 
      A        1      10   1/1/2008    1/1/2008 
      A        1      20   1/1/2009    1/1/2010 
      A        1      20   1/1/2010    1/1/2010 
      A        1      10   1/1/2011    1/1/2012 
      A        1      10   1/1/2012    1/1/2012 
      A        2      20   1/1/2007    1/1/2008 
      A        2      20   1/1/2008    1/1/2008 
      A        2      10   1/1/2009    1/1/2010 
      A        2      10   1/1/2010    1/1/2010 
      A        2      30   1/1/2011    1/1/2011 
      A        2      10   1/1/2012    1/1/2013 
      A        2      10   1/1/2013    1/1/2013 
如您所见,在值更改之前,我需要根据每组代码值(除了ACCT_NUM和CERT_ID)对日期进行MAX。如果相同的值重复出现,我需要分别为该组重新计算数据的最大值。例如,对于CERT_ID“1”,我无法将代码10的所有四行分组,以获得2012年1月1日的最大日期。我需要获得前两行的最大值,然后分别获得下两行的另一个最大值,因为中间有另一个代码。我正试图在Cognos框架管理器中实现这一点


专家们,请告知。

获取证书ID最大值的语法是:

maximum(Date for CERT_ID)
如果您想为max增加级别,可以使用以下语法:

maximum(Date for ACCT_NUM,CERT_ID,Code)

通常,在报表中分组和汇总值是最佳做法,而不是在FrameworkManager中

你好,我在“所需输出”列下的“日期”列中包含了我需要的内容。所需的输出列是我希望使用日期列上的函数派生的列。使用您建议的语法,对于给定的证书ID,我将只获得一个Max(Date)值。在我给出的示例中,对于证书ID“1”,我将获得2012年1月1日,对于证书ID“2”,我将获得2013年1月1日。这不是我想要的。请建议其他方法,这些方法将为我提供所需输出列中描述的值。谢谢。Hi-Ran,在您包含的第二个最大值函数中,我得到了证书ID“1”下代码“10”的一个最大值(日期),即“2012年1月1日”,而证书ID“1”下的代码“10”需要两个不同的最大值(日期):2008年1月1日和2012年1月1日。请给我一些建议。非常感谢。