获取同一行sql中的值

时间:2017-04-29 11:26:38

标签: sql

我想通过查询检索两个金额。 更具体地说,我有一个名为TABLE1的保存金额的表,其值如下:

   TABLE1
   ------------------
   | ID   |  AMOUNT |
   ------------------
   | 100  | 100.2   |
   | 511  | 400.1   |
   | 730  | 200.7   |
   ------------------

另一个表格,具有特定id的flg值Y

    TABLE2
    ----------------------------
    | comb_nbr   |  ID   | FLG  |
    ----------------------------
    |   10       | 511   |   N  |
    |   10       | 100   |   Y  |
    |   10       | 730   |   N  |
    ----------------------------

我想获得如下输出

     Desired Output
     --------------------------------
     | TABLE1_AMOUNT | TABLE2_AMOUNT |
     --------------------------------
     | 100.2      |  100.2           |
     ---------------------------------

我使用以下查询来获取值。

SELECT SUM(CASE WHEN id =  :p_amount_id THEN amount END) AS TABLE1_AMOUNT,
       SUM(CASE WHEN id != :p_amount_id THEN amount END) AS TABLE2_AMOUNT
FROM table1
WHERE col_nbr = :p_column_nbr 
AND   line_nbr = :p_line_nbr 
AND  (id = :p_amount_id
      OR id IN (SELECT id
                  FROM table2
                 WHERE comb_nbr = 10
                   AND flg = 'Y'));

我处理的问题是,如果子查询返回与bind_variable相同的id:p_amount_id 那么TABLE2_AMOUNT为空。 (由于运营商的原因) 有没有办法做到这一点?

0 个答案:

没有答案