имхо копать нужно примерно сюда :
SELECT COUNT(*) FROM
customers c,
orders o,
order_items oi,
products p,
[b]COUNT(sh.*) as count[/b]
WHERE
o.cid=c.cid AND
oi.oid=o.oid AND
oi.productid=p.productid AND
p.groupid=2 AND
MONTH(FROM_UNIXTIME(o.ordertime)) = MONTH(NOW()) AND
YEAR(FROM_UNIXTIME(o.ordertime)) = YEAR(NOW()) AND
c.cid IS NOT NULL [b]AND
sh.oid=o.oid
GROUP BY sh.oid
HAVING count = 1[/b];