Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle数据库SQL-嵌入式选择_Sql_Database_Oracle - Fatal编程技术网

Oracle数据库SQL-嵌入式选择

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

我试图构建一个脚本来检索今天填充的“编辑助记符”值列表。为此,我必须对照索赔表上的“最后一次分析日期”进行检查

我在用三张桌子

索赔-主键“索赔iid”-包含上次分析日期、索赔EID

索赔行-主键“索赔行”包含“索赔行”

索赔行编辑-主键“索赔行编辑”包含“索赔行编辑”、“编辑助记符”

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

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进行比较。这就是我想写的,被一个中间的电话打断了…很好。谢谢你的帮助!!!我保证边走边学:)谢谢。