• Hey GrassHopper I finally got it.

    I had to think backwards.

    ALTER proc [dbo].[uspUtbProduct_Select_W_Top1Photo_4Opts]

    @SubCategoryID INT,

    @ProductID INT

    AS

    DECLARE @OptionsTable TABLE

    (

    ProductID INT,

    SubCategoryID INT,

    ProductName VARCHAR(30),

    ProductNumber VARCHAR(30),

    PhotoID INT,

    PhotoName VARCHAR(30)

    )

    INSERT INTO @OptionsTable

    SELECT pr.ProductID,

    ------------------------------

    -- prPo.ProductOptionID,

    ------------------------------

    pr.SubCategoryID,

    pr.Name AS 'ProductName',

    pr.Number AS 'ProductNumber'

    ------------------------------

    ,ph.[PhotoID]

    ,ph.[Name] AS 'PhotoName'

    FROM Production.utbProduct pr WITH(NOLOCK)

    left outer join (select ProductId, max(PhotoId) as PhotoId

    from Production.utbProductUtbPhoto WITH(NOLOCK)

    group by ProductId) as prph

    on pr.ProductId = prph.ProductId

    left outer join Files.utbPhoto ph

    on prph.PhotoId = ph.PhotoId

    left join Production.utbProductUtbProductOption prpo

    on prpo.ProductID = pr.ProductID

    WHERE pr.SubCategoryID = @SubCategoryID

    AND pr.ProductID <> @ProductID

    AND pr.ProductID NOT IN (SELECT ProductOptionID FROM Production.utbProductUtbProductOption

    WHERE ProductID = @ProductID)

    SELECT * FROM @OptionsTable t1

    exec [dbo].[uspUtbProduct_Select_W_Top1Photo_4Opts]2,7

    Dam again!