Something like this?
;WITH family1 AS (
SELECT DISTINCT InvoiceID
FROM invoiceDetails
WHERE ItemCode LIKE 'PMM1%'
), family2 AS (
SELECT DISTINCT InvoiceID
FROM invoiceDetails
WHERE ItemCode LIKE 'PMM2%'
), family3 AS (
SELECT DISTINCT InvoiceID
FROM invoiceDetails
WHERE ItemCode LIKE 'PMM3%'
)
SELECT SalesRepID, COUNT(*) FROM Invoices i
INNER JOIN family1 f1 ON f1.invoiceID = i.InvoiceID
INNER JOIN family2 f2 ON f2.InvoiceID = i.InvoiceID
INNER JOIN family3 f3 ON f3.InvoiceID = i.InvoiceID
GROUP BY SalesRepID
.