2017-08-29 59 views
0

我怎么能写这样的公式Excel,以及如何在DB2查询中使用这样的逻辑:查询为Excel或DB2

IF:

Month(max(A_dt)) <= month(B_dt) 

正在使用

THEN:

day=01, month=month(A_dt), year=year(B_dt) + 1 

ELSE:

day=01 Month=Month(A_dt) Year=Year(B_dt) 
+0

如果您了解DB2 SQL,听起来很容易。你做? – duffymo

回答

0

,这个问题很模糊,很难不表结构和数据集的任何想法来回答。按照您概述的逻辑,年份是根据条件变化的唯一输出。

下面包含三个简单的case语句来处理您的条件。前两个是完全没有意义的,因为无论通过还是失败都会返回相同的响应(根据上面的逻辑),但我将它们包括在内仅仅是为了说明这一点,因为它可以帮助您了解条件是否令您感到困惑。

我建议您阅读关于您的特定口味的db2手册或做一些介绍性的sql教程。这个案例非常重要,在查询写作中非常有用。

select 
     _key 
    ,case when month(max(a_dt)) <= month(b_dt) 
      then 01 
      else 01 
     end as day 
    ,case when month(max(a_dt)) <= month(b_dt) 
      then month(a_dt) 
      else month(a_dt) 
     end as month 
    ,case when month(max(a_dt)) <= month(b_dt) 
      then year(b_dt) + 1 
      else year(b_dt) 
     end as year 
from 
     your_table