Oracle SQL从不同的表连接中减去2个值

时间:2015-02-27 21:20:57

标签: sql oracle

我试图从基于与其他表的连接生成的表C中减去序列MN_SEQ。 enter image description here 这是问题所在。 查询1 - 从表C,表A,表B中选择M_Seq,其中C.date_sk = A.MTH_END_DT 和B.Loan_seq = A.Loan_seq

查询2 -

从表C,表B中选择M_Seq,其中C.date_sk = B.ORIG_DT

我必须区分从查询1的结果集和查询2生成的2 M_SEQ。

以下是我尝试过的,但我收到了错误。

                                                                        select mn_seq -mn_seq from 
    ((select mn_seq from Table C, Table A, Table B where  B.MTH_END_DT=C.DATE_SK and B.LOAN_SEQ=A.LOAN_SEQ)a,
   (select mn_seq from Table C , Table B where B.ORIG_DT=C.DATE_SK
    )b) 

Ť

请提供意见。我不确定这是否是正确的方法。我尝试过使用" - "查询之间但没有工作。谢谢!

1 个答案:

答案 0 :(得分:1)

试试这个..

SELECT (SELECT mn_seq
          FROM TABLE c, TABLE a, TABLE b
         WHERE b.mth_end_dt = c.date_sk
           AND b.loan_seq = a.loan_seq) -
       (SELECT mn_seq FROM TABLE c, TABLE b WHERE b.orig_dt = c.date_sk)
  FROM dual

我假设mn_seq都是NUMBER,并且你的WHERE子句在每个内部查询中只返回一条记录。