Я считаю, что в вашем # Query2 есть небольшая ошибка. в союзе все части.
Я думаю, чтобы работать, вы должны сделать следующее:
SELECT 0 AS THE_TOTAL_SPENT , BONOD_DETAILS_ID
FROM BONOD_DETAILS
WHERE BONOD_ID
IN (
SELECT BONOD_ID
FROM BONOD_TABLE
WHERE USER_ID =16
)
AND BONOD_DETAILS_ID NOT
IN (
SELECT BONOD_DETAILS_ID
FROM EXPENSES_TABLE WHERE USER_ID = 16
)
так, как ответил JNevill. Запрос будет
SELECT A.TOTAL_AMOUNT-B.THE_TOTAL_SPENT AS TOTAL,
A.TOTAL_AMOUNT, B.THE_TOTAL_SPENT,A.BONOD_DETAILS_ID
FROM
(SELECT BONOD_AMOUNT TOTAL_AMOUNT , BONOD_DETAILS_ID
FROM `BONOD_DETAILS `
WHERE BONOD_ID
IN ( SELECT BONOD_ID
FROM BONOD_TABLE
WHERE USER_ID =16
)) A,
( SELECT SUM( AMOUNT ) THE_TOTAL_SPENT, BONOD_DETAILS_ID
fROM EXPENSES_TABLE
WHERE BONOD_DETAILS_ID
IN (
SELECT BONOD_DETAILS_ID
FROM BONOD_DETAILS
WHERE USER_ID =16
AND BONOD_ENABLE =1
)
GROUP BY BONOD_DETAILS_ID
UNION ALL
SELECT 0 AS THE_TOTAL_SPENT , BONOD_DETAILS_ID
FROM BONOD_DETAILS
WHERE BONOD_ID
IN (
SELECT BONOD_ID
FROM BONOD_TABLE
WHERE USER_ID =16
)
AND BONOD_DETAILS_ID NOT
IN (
SELECT BONOD_DETAILS_ID
FROM EXPENSES_TABLE WHERE USER_ID = 16
)
) B
WHERE A.BONOD_DETAILS_ID = B.BONOD_DETAILS_ID