If you need to limit the number of row returned by one of your tables, you could use a CROSS APPLY solution. Right table expression is processed once for each row from the left table expression. CROSS APPLY (SELECT TOP 1 * FROM skh.v_list_price_each WHERE skh.v_price_book.item_short = skh.v_list_price_each.item_short) lpe Due you're using a TOP (X) expression, you could add an ORDER BY clause to the SELECT statement. SELECT skh.ARCUS.IDCUST, skh.ICITEM.ITEMNO AS product_code, skh.ICITEM.CNTLACCT, lpe.price AS list_price, skh.v_price_book.price, lpe.unit AS Expr2, skh.v_price_book.price_unit FROM skh.ARCUS INNER JOIN skh.v_price_book ON skh.ARCUS.PRICLIST = skh.v_price_book.price_list INNER JOIN skh.ICITEM ON skh.v_price_book.item_short = skh.ICITEM.ITEMNO AND skh.v_price_book.company = skh.ICITEM.AUDTORG CROSS APPLY (SELECT TOP 1 * FROM skh.v_list_price_each WHERE skh.v_price_book.item_short = skh.v_list_price_each.item_short) lpe WHERE skh.ICITEM.INACTIVE = 0 AND skh.ARCUS.SWACTV = 1 ORDER BY skh.ARCUS.IDCUST;