I made one small change. I put an AND statement inside the JOIN <code>
AND DT_CustomerPrices.Custnum='4415'
</code> moving it from the WHERE clause.
<ORIGINAL CODE>
SELECT DT_Products.itemcode, DT_Products.price, DT_CustomerPrices.custitemcode, DT_CustomerPrices.custPrice, DT_CustomerPrices.Custnum, DT_Products.active
FROM DT_Products LEFT JOIN DT_CustomerPrices ON DT_Products.itemcode = DT_CustomerPrices.custitemcode
WHERE DT_CustomerPrices.Custnum='4415' AND DT_Products.active=1
</ORIGINAL CODE>


<Adjusted code>
SELECT DT_Products.itemcode, DT_Products.price, DT_CustomerPrices.custitemcode, DT_CustomerPrices.custPrice, DT_CustomerPrices.Custnum, DT_Products.active
FROM DT_Products LEFT JOIN DT_CustomerPrices ON DT_Products.itemcode = DT_CustomerPrices.custitemcode AND DT_CustomerPrices.Custnum='4415'
WHERE DT_Products.active=1
</Adjusted code>
That fixed it! the results display all 350 products plus the custom pricing for the logged in customer.
Thanks!