Попробуйте это:
select count(a.item) from
(select date, id, item from online_transaction_enc
union
select date, id, item from offline_transaction_enc)a
inner join
(
select date,id,supplier_id,productcode from online_transaction
union
select date,id,supplier_id,productcode from offline_transaction)b
on a.date=b.date and a.id=b.id
inner join supplier on b.supplier_id=supplier.supplier_id
inner join products on b.productcode=products.product_code
where a.date between '20180601' And '20180730' AND Type='household' AND country='Malaysia'