If you need to limit the number of rows 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 * --<< add required fields here don't use * FROM skh.v_price_book INNER JOIN skh.ICITEM ON skh.ICITEM.ITEMNO = pb.item_short AND skh.ICITEM.AUDTORG = pb.company INNER JOIN skh.v_list_price_each ON skh.v_list_price_each.item_short = pb.item_short WHERE skh.v_price_book.price_list = skh.ARCUS.PRICLIST AND skh.ICITEM.INACTIVE = 0) pb Due you're using a TOP (X) expression, you could add an ORDER BY clause into the SELECT statement. SELECT skh.ARCUS.IDCUST, pb.ITEMNO AS product_code, pb.CNTLACCT, pb.price AS list_price, pb.price, pb.unit AS Expr2, pb.price_unit FROM skh.ARCUS CROSS APPLY (SELECT TOP 1 * --<< add required fields here don't use * FROM skh.v_price_book INNER JOIN skh.ICITEM ON skh.ICITEM.ITEMNO = pb.item_short AND skh.ICITEM.AUDTORG = pb.company INNER JOIN skh.v_list_price_each ON skh.v_list_price_each.item_short = pb.item_short WHERE skh.v_price_book.price_list = skh.ARCUS.PRICLIST AND skh.ICITEM.INACTIVE = 0) pb WHERE skh.ARCUS.SWACTV = 1 --ORDER BY skh.ARCUS.IDCUST As it seems you're using this query within a VIEW (TOP (100) PERCENT), I'd suggest you to remove TOP and move ORDER BY to your SELECT view_name statement.