表格Case_ACTIONS
CASE_ID SEQ_NUM DATE_OPEN DATE_DUE CODE DESCREPTION_J
153286253 64125995 9/21/2013 9/28/2013 23001954 有害事象連絡票
153286253 64125996 9/23/2013 9/29/2013 23001938 PMS-SAE/AE報告書
表LM_ACTION_ITEM_TYPE
ACTION_TYPE_ID ACTION_TYPE
23001954 JP FU AE Report Frm
23001938 JP FU with pregnancy
我想选择DESCREPTION_J作为类型'JP FU AE Report Frm'或'JP FU with pregnancy'的最新记录
我写的查询是:
select
description_j
from
case_actions
where
date_open = (select MAX(ca.date_open)
from case_actions ca, LM_ACTION_ITEM_TYPE lat
where ca.code = lat.action_type_id
and lat.action_type IN ('JP FU AE Report Frm – Contact Record', 'JP FU AE Report Frm–Detail Invest. Frm','JP FU with pregnancy form')
and ca.case_id = :P_LET_CASE_ID and ca.action_status = 1
and ca.deleted is NULL)
它给了我不正确的数据。请帮忙。
答案 0 :(得分:1)
您必须将外部查询与内部查询相关联,否则您可能会获得只与日期共享的case_actions(而不是子查询中的其他过滤器)。
使用此示例数据:
使用case_id = 153286253,您的查询将提供bbb和ddd。但是ddd有一个不同的case_id和代码,我认为你不想要它。
向内部查询添加和ca.case_id = case_actions.case_id会给出bbb,我相信这是你期望的结果。
答案 1 :(得分:0)
首先,您应该始终提供整个表结构定义。 无论如何,根据你的样本查询,我可以想到一些东西。 试试这个。
select ca.description_j
from case_actions ca
where ca.date_open = (select MAX(ca.date_open)
from lm_action_item_type lat
where ca.code = lat.action_type_id
and lat.action_type IN ('JP FU AE Report Frm Contact Record', 'JP FU AE Report Frm Detail Invest. Frm','JP FU with pregnancy form')
and ca.case_id = :P_LET_CASE_ID
and ca.action_status = 1
and ca.deleted is NULL)