Oracle数据库SQL-嵌入式选择
我试图构建一个脚本来检索今天填充的“编辑助记符”值列表。为此,我必须对照索赔表上的“最后一次分析日期”进行检查 我在用三张桌子 索赔-主键“索赔iid”-包含上次分析日期、索赔EID 索赔行-主键“索赔行”包含“索赔行” 索赔行编辑-主键“索赔行编辑”包含“索赔行编辑”、“编辑助记符” 到目前为止,我已经想出了Oracle数据库SQL-嵌入式选择,sql,database,oracle,Sql,Database,Oracle,我试图构建一个脚本来检索今天填充的“编辑助记符”值列表。为此,我必须对照索赔表上的“最后一次分析日期”进行检查 我在用三张桌子 索赔-主键“索赔iid”-包含上次分析日期、索赔EID 索赔行-主键“索赔行”包含“索赔行” 索赔行编辑-主键“索赔行编辑”包含“索赔行编辑”、“编辑助记符” 到目前为止,我已经想出了 select edit_mnemonic from claim_line_edit where claim_line_iid in (select claim_line_iid f
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.
我的问题是,如何在同一语句中为这些编辑助记符从索赔表中选择相应的索赔ID?我需要在这里使用连接吗
我试着用
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)));
结果是我收到了索赔表上所有索赔的列表
我期望的输出是
EDIT_MNEMONIC CLAIM_EID
------------- ---------
MFD 1850735 B
ICM 9999999
EST 9999999
ICM 9999999
EST 9999999
5 rows selected.
感谢您花时间阅读我的帖子,如果需要更多信息,请告诉我
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)
这假设最后一个分析日期是日期格式,应该是这样的;否则,您将需要您的截止日期(上次分析日期),最好使用明确的日期格式。为什么您在这里使用subery,而不仅仅是加入?另外,to_date(sysdate)也有错误-这应该实现什么?嗨,Alex。我想你最初问题的唯一答案是我没有恰当地处理剧本。这也是我第一次在脚本中使用sysdate,我添加了to_日期以确保数据类型匹配。我可以移除它。也许你有什么建设性的建议吗?它应该是建设性的,或者至少为你要做的事情建立一个基线。SYSDATE已经是一个日期,因此
to_date()
进行隐式转换并依赖NLS设置。知道您为什么这样做会表明您是否应该使用原始值,或者尝试将其截短到午夜,即获取今天最后一次分析的所有索赔。感谢您查看我的问题Mathguy。不幸的是,我无法将claim加入claim to claim_line_edit,因为claim_line_edit不包含claim_iid。索赔iid仅在索赔和索赔行中找到。Claim_line包含Claim_line_iid,该ID随后与Claim_line_编辑表关联。所以我相信我需要加入claim->claim\u line->claim\u line\u edit。这篇文章让我很困惑。再次感谢。对不起,我误读了你们桌子的结构。这仍然可以通过连接来完成,您只需要连接所有三个表。我还注意到claim_line_edit或claim_line_edit之间存在不一致,请使用表中正确的名称。在一分钟内修复答案中的查询。除非将来有分析日期,否则我怀疑OP希望与trunc(sysdate)
.Sick进行比较。这就是我想写的,被一个中间的电话打断了…很好。谢谢你的帮助!!!我保证边走边学:)谢谢。