我不敢肯定这一具体询问的最好方式,因此我希望标题是充分的,但我将试图描述我需要怎样理解。 简言之,这是为了 or。
我们有一个称为评估的表格。 然而,本表内有不同类型的评估,有些评估应按照逻辑顺序和在规定时限内进行。 当客户对同一类型进行多种评估时,问题就会出现,因为我们必须在外部使用一种相当低的阵列公式,以确定哪些全面评估与初步评估相吻合。
我早就在这个网站上解决了一个问题(https://stackoverflow.com/questions/8615286/returning-related-date-from-multiple-table-info-or>从多个表格中重新排列相关日期,包括载于fo的附加表格),我认为这些表格含有许多必要的逻辑(特别是确定在规定时限内发生的相应事件)。 然而,虽然询问将数据从3个适当表格(评估、事件、反应)中删除,但我现在需要提出一个问题,产生类似的结果,但从1个主要表格和2个表格中抽取,来回工人的信息。 我认为,最合乎逻辑的方法是建立一个以一种评估形式审视评估表的询问,然后再次加入评估表(可能是一个临时表格)并采用最初的评估类型。
例如:
表1
Client ID Assessment Type Start End
P1 1 Initial 01/01/2012 05/01/2012
表2 (评估节奏):
Client ID Assessment Type Start End
P1 2 Full 12/01/2012
表3
ID Worker Team
1 Bob Team1
2 Lyn Team2
结果:
Client ID Initial Start Initial End Initial Worker Full Start Full End
P1 1 01/01/2012 05/01/2012 Bob 12/01/2012
因此,表1和表2取自同一表格,但重复了不同的评估。 理想的情况是,进行核查,以确保全面评估在初步评估结束后X天内开始(类似于前面提到的前一次查询中可能进行的核查)。 如果能够做到这一点,也许值得一提的是,我也有兴趣扩大这一范围,以研究多种评估类型,因为在周期中,预期客户在4至5种不同类型的评估之间会有大致相同的评估。 任何人都值得赞赏,我早就已经得到了这个非常宝贵的社区的大量帮助。
Edit:
根据甲基溴咨询纳入解决办法。
Select
*
From(
Select
I.ASM_SUBJECT_ID as PNo,
I.ASM_ID As IAID,
I.ASM_QSA_ID as IAType,
I.ASM_START_DATE as IAStart,
I.ASM_END_DATE as IAEnd,
nvl(olm_bo.get_ref_desc(I.ASM_OUTCOME, ASM_OUTCOME ), ) as IAOutcome,
C.ASM_ID as CAID,
C.ASM_QSA_ID as CAType,
C.ASM_START_DATE as CAStart,
C.ASM_END_DATE as CAEnd,
nvl(olm_bo.get_ref_desc(C.ASM_OUTCOME, ASM_OUTCOME ), ) as CAOutcome,
ROUND(C.ASM_START_DATE -I.ASM_START_DATE,0) as "Likely",
row_number() over(PARTITION BY I.ASM_ID
ORDER BY
abs(I.ASM_START_DATE - C.ASM_START_DATE))as "Row Number"
FROM
O_ASSESSMENTS I
left join O_ASSESSMENTS C
on I.ASM_SUBJECT_ID = C.ASM_SUBJECT_ID
and C.ASM_QSA_ID IN ( AA523 , AA1326 ) and
ROUND(C.ASM_START_DATE - I.ASM_START_DATE,0) >= -2
AND
ROUND(C.ASM_START_DATE - I.ASM_START_DATE,0) <= 25
and C.ASM_OUTCOME <> ABANDON
Where I.ASM_QSA_ID IN ( AA501 , AA1323 )
AND I.ASM_OUTCOME <> ABANDON
AND
I.ASM_END_DATE >= 01-04-2011 ) WHERE "Row Number" = 1