我需要根据字段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。