以下のクエリを実行すると、NULL が返されます。
SELECT SUM(t.coupon_quantity)
FROM transaction t, coupon c, supplier s
WHERE MONTH(date_entered) = MONTH(CURDATE())
AND YEAR(date_entered) = YEAR(CURDATE())
AND t.coupon_id = c.id
AND c.supplier_id = s.id
AND s.id IN (SELECT us.supplier_id FROM user_supplier us WHERE us.user_id = 4);
最後の行を取り出すとレコードが返されますが、追加すると何も得られないため、サブクエリの問題であると思われます。
サブクエリを単独で実行すると、2 つの ID (14 と 15) が得られます。サブクエリを「AND s.id IN (14,15);」に置き換えると、...できます。何かご意見は?