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 想减、 可以把他们结合起来 但是一定钥匙第一个表减去第二个、 求解
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 想减、 可以把他们结合起来 但是一定钥匙第一个表减去第二个、 求解
from (第一个结果集) A ,(第二个结果集) B
where A.SECTION = B.SECTION
selec A.id,A.value-B.value from (第一个结果集) A left join (第二个结果集) B
on A.id = B.id