Oracle查询以联接和内部查询来选择适当的记录

时间:2018-11-23 04:22:54

标签: sql oracle oracle11g oracle10g

我需要一个条件来在oracle中写查询以满足以下条件

A和B是2个表

  1. 在所有情况下,A的B副本都不正确
  2. 在A中,如果重写为'Y',我将有2条记录。一个是将其替换为“ N”,将其替换为“ Y”,并且一个值可以相同或不相同
  3. 对于B,我们可以使用与“ Y”或“ N”相同的值进行覆盖,但我需要最新的方法可以使用indx检索,因为它是主键(最新 pk)
  4. 在A替代中可以为'Y',然后它将检查B的最新替代以发现onevale有变化
  5. 如果替代项可以为“ N”,但它应该比较“ B”中最新的替代项“ Y”以发现onevale发生了变化
  6. 如果onevale相同且覆盖相同,则不显示任何记录

select * 
From A A1, B B1  
Where A1.SS = B1.SS 
  And A1.TS = B1.TS 
  and a1.indx = (select max(indx) 
                 from A 
                 where tc = 'T1234' 
                   and sc = 'S1234'
                ) 
  and A1.override = B1.override 
  and (a1.onevale <> b1.onevale)

有人可以解释这个查询是否满足所有条件

0 个答案:

没有答案