I execute Query A, it gives me the result i.e 4,5,6. And If I use that result directly into the Query B in WHERE IN clause, it gives me the perfect result again. But If I use both the query combined in Query C, it is not generating any answer.
Query A
SELECT `region`.`district_id`
FROM `region`
LEFT JOIN `regional_owner` ON `regional_owner`.`r_id` = `region`.`id`
WHERE `regional_owner`.`email_id` = 'balajibarhate10@gmail.com';
Produces O/P - 4,5,6 which I use below
Query B
SELECT sum(`purchase`.`purchase_ammount`), `franchise`.`district_id`
FROM `purchase`
LEFT JOIN `franchise` ON `franchise`.`id` = `purchase`.`f_id`
WHERE `franchise`.`district_id` in (
4,5,6
)
AND purchase.purchase_date BETWEEN Date_format(CURDATE(), "%Y-%m-01") AND CURDATE()
GROUP BY `franchise`.`district_id`
Now, I am combining both of the above queries in one as below
Query C
SELECT sum(`purchase`.`purchase_ammount`), `franchise`.`district_id`
FROM `purchase`
LEFT JOIN `franchise` ON `franchise`.`id` = `purchase`.`f_id`
WHERE `franchise`.`district_id` in (
SELECT `region`.`district_id`
FROM `region`
LEFT JOIN `regional_owner` ON `regional_owner`.`r_id` = `region`.`id`
WHERE `regional_owner`.`email_id` = 'balajibarhate10@gmail.com'
)
AND purchase.purchase_date BETWEEN Date_format(CURDATE(), "%Y-%m-01") AND CURDATE()
GROUP BY `franchise`.`district_id`
I am unable to understand, which part is wrong. Please guide me.