SELECT   id SECTION,  PRODUCT_NAME SERIES, ifnull(  temp2.VALUE, 0) VALUE
  FROM    (SELECT id,
                  product_name,
                  product_id,
                  bank_id
             FROM system_cons, product
            WHERE category = 'YEAR_MONTH') temp1
       LEFT JOIN
          (SELECT count(DISTINCT l.application_id) VALUE,
                  month(l.DISBURSE_DATE) SECTION,
                  product_id
             FROM loan l, application a
            WHERE     l.APPLICATION_ID = a.APPLICATION_ID
                  AND year(l.DISBURSE_DATE) = '2012'
                  AND BANK_ID = 1
           GROUP BY PRODUCT_ID, SECTION) temp2
       ON temp1.id = temp2.section AND temp1.PRODUCT_ID = temp2.product_id
 WHERE temp1.BANK_ID = 1
----------------------------------------------------------------------
SELECT id SECTION, PRODUCT_NAME SERIES, ifnull(VALUE, 0) VALUE
  FROM    (SELECT id,
                  product_name,
                  product_id,
                  bank_id
             FROM system_cons, product
            WHERE category = 'YEAR_MONTH') temp1
       LEFT JOIN
          (SELECT ( count(DISTINCT y.APPLICATION_ID)
                   - count(DISTINCT x.APPLICATION_ID))
                     VALUE,
                  month(y.LOST_DATE) SECTION,
                  month(x.LOST_DATE) SECTIO,
                  y.product_id,
                  x.product_id productId
             FROM (SELECT a.APPLICATION_ID,
                          a.LENDERS_DATE LOST_DATE,
                          a.product_id
                     FROM application a
                    WHERE     a.APPLICATION_STATUS_ID = 14
                          AND a.LENDERS_DATE >=
                                 STR_TO_DATE(concat(2012, '/01/01'),
                                             '%Y/%m/%d')
                          AND a.LENDERS_DATE <=
                                 STR_TO_DATE(concat(2012, '/12/31'),
                                             '%Y/%m/%d')
                          AND BANK_ID = 1) x,
                  (SELECT a.APPLICATION_ID,
                          a.APPROVAL_DATE LOST_DATE,
                          a.product_id
                     FROM application a
                    WHERE     a.APPLICATION_STATUS_ID = 13
                          AND a.APPROVAL_DATE >=
                                 STR_TO_DATE(concat(2012, '/01/01'),
                                             '%Y/%m/%d')
                          AND a.APPROVAL_DATE <=
                                 STR_TO_DATE(concat(2012, '/12/31'),
                                             '%Y/%m/%d')
                          AND BANK_ID = 1) y
           GROUP BY x.PRODUCT_ID, SECTIO,y.PRODUCT_ID, SECTION) temp2
       ON temp1.id = temp2.section AND temp1.PRODUCT_ID = temp2.product_id
 WHERE temp1.BANK_ID = 1
--------------------------------------------------------------------
  把第一个表的结果减去第二个结果他们的主要是value 想减、 可以把他们结合起来 但是一定钥匙第一个表减去第二个、 求解 

解决方案 »

  1.   

    SQL太长,2个SQL语句结果是什么,有无相同的KEY字段
      

  2.   

    selec  A.SECTION,A.value-B.value
    from  (第一个结果集) A ,(第二个结果集) B
    where A.SECTION = B.SECTION
      

  3.   

    假设第1个字段为KEY字段
    selec  A.id,A.value-B.value  from (第一个结果集) A left join (第二个结果集) B
    on A.id = B.id
      

  4.   

    select * from a b where not exeit(select id from a)and exeit(select id from b)