Teradata SQL - 过滤同一SELECT语句的不同列

时间:2017-08-17 21:00:18

标签: sql teradata

我需要根据字段a.CTACT_RF过滤BEG_DATE和END_DATE。 a.CTACT_RF中有记录表明过程的开始和结束。简而言之,我需要在进程开始时过滤BEG_DATE,并在过程结束时根据CTACT_RF过滤END_DATE。

我目前的代码:

SELECT
        k.CASE_ID,
        k.CASE_STATUS_CD,
        a.CTACT_RF,
        CAST(k.CASE_OPEN_DT AS DATE)    AS  BEG_DATE,
        CAST(MIN(a.ACTION_DTM) AS DATE) AS  END_DATE,
        CURRENT_DATE                    AS  CAL_DATE
    FROM
        k
    RIGHT OUTER JOIN
        a
            ON      (a.CONTEXT_CD   =   k.CONTEXT_CD)
            AND     (a.CASE_ID      =   k.CASE_ID)
    WHERE
                    (k.CASE_STATUS_CD       =       'OPEN')         
    GROUP BY
        k.CASE_ID,
        k.CASE_STATUS_CD,
        a.CTACT_RF,
        k.CASE_OPEN_DT

我希望有类似的东西:

SELECT
        k.CASE_ID,
        k.CASE_STATUS_CD,
        a.CTACT_RF,
        CAST((k.CASE_OPEN_DT WHERE a.CTACT_RF = 'STCOEMRESP') AS DATE)      AS  BEG_DATE,
        CAST(MIN((a.ACTION_DTM WHERE a.CTACT_RF = 'DC022') AS DATE) AS  END_DATE,
        CURRENT_DATE AS     CAL_DATE

我的SELECT语句,但是我收到了错误。

我可以使用子查询,但我正在尝试寻找更清洁的东西,因为它已经是子查询。

这是在Teradata。

0 个答案:

没有答案