I would change your query to this
CREATE PROC DespatchMachine
@docno INT
AS
SELECT DISTINCT m.mcidno,m.mcrefno,t.buyercomp,t.buyerfact
FROM Tbl_Machine m INNER JOIN Tbl_Asset t
ON m.mcidno = t.machineid
WHERE t.deliveryno= @docno
p.s.
Inner Join
will only return the matches.