Oracle Database SQL - Embedded选择

时间:2016-05-05 18:26:38

标签: sql database oracle

我正在尝试构建一个脚本来检索今天填充的“edit_mnemonic”值列表。为此,我必须检查索赔表中的“last_analysis_date”。

我正在使用三张桌子

声明 - 主键“claim_iid” - 包含last_analysis_date,claim_EID

claim_line - 主键“claim_line_iid” - 包含“claim_iid”

claim_line_edits - 主键“claime_line_edit_iid” - 包含“claim_line_iid”,“edit_mnemonic”

到目前为止,我已经提出了

select edit_mnemonic

from claim_line_edit

where claim_line_iid in 
(select claim_line_iid from claim_line where claim_iid in 

(select claim_iid from claim where to_date(last_analysis_date) >= to_date(sysdate)));

select claim_eid from claim where to_date(last_analysis_date) >= to_date(sysdate);

这给了我以下内容:

EDIT_MNEMONIC       
--------------------
MFD                 
ICM                 
EST                 
ICM                 
EST                 

5 rows selected.

CLAIM_EID                                                                       
---------------------------------------------------------------------------
1850735 B                                                                       
9999999                                                                         
9999999                                                                         

3 rows selected.

我的问题是,如何在同一语句中为这些edit_mnemonics从声明表中选择相应的claim_EID?我需要在这里使用联接吗?

我尝试使用

select edit_mnemonic, claim_eid

from claim_line_edit, claim

where claim_line_iid in 
(select claim_line_iid from claim_line where claim_iid in 

(select claim_iid from claim where to_date(last_analysis_date) >= to_date(sysdate)));

结果是我在索赔表上收到了所有claim_eid的列表。

我想要的输出是

EDIT_MNEMONIC      CLAIM_EID       
-------------      ---------
MFD                1850735 B 
ICM                9999999 
EST                9999999 
ICM                9999999 
EST                9999999 

5 rows selected.

感谢您抽出时间阅读我的帖子,如果需要其他信息,请与我们联系。

1 个答案:

答案 0 :(得分:2)

select edit_mnemonic, claim_eid
from claim_line_edits cle join claim_line cl on cle.claim_line_iid = cl.claim_line_iid 
                          join claims c on cl.claim_iid = c.claim_iid
where last_analysis_date >= trunc(sysdate)

这假设last_analysis_date是日期格式,应该是;否则你需要你的to_date(last_analysis_date),更好的是使用明确的日期格式。