• WOW! Thanks for your help. It solve my problem.

    jwlooi

    Kingston Dhasian (9/11/2013)


    One of the ways to achieve it..

    DECLARE@tableSTK TABLE

    (

    ItemIDVARCHAR(8),

    ItemDescVARCHAR(100),

    PriceMONEY

    )

    DECLARE @tableABC TABLE

    (

    ItemIDVARCHAR(8),

    ConditionAmtMONEY,

    Return_AmtMONEY

    )

    INSERT@tableSTK

    ( ItemID, ItemDesc, Price )

    SELECT'04400110', 'A4 Paper', 30.00 UNION ALL

    SELECT'08800220', 'Bic Pen 5.0', 20.00

    INSERT@tableABC

    ( ItemID, ConditionAmt, Return_Amt )

    SELECT'04400110', 100.00, 28.50 UNION ALL

    SELECT'04400110', 200.00, 27.00 UNION ALL

    SELECT'04400110', 300.00, 25.50 UNION ALL

    SELECT'08800220', 50.00, 19.00 UNION ALL

    SELECT'08800220', 80.00, 18.00 UNION ALL

    SELECT'08800220', 150.00, 15.00 UNION ALL

    SELECT'08800220', 200.00, 14.00

    DECLARE@ConditionAmt INT,

    @ItemID VARCHAR(8)

    SELECT@ConditionAmt = 95.00,

    @ItemID = '08800220'

    ; WITH cte_table AS

    (

    SELECTROW_NUMBER() OVER( PARTITION BY ItemID ORDER BY ConditionAmt ) AS RN, * FROM

    (

    SELECTItemID, 0 AS ConditionAmt, Price

    FROM@tableSTK

    UNION ALL

    SELECTItemID, ConditionAmt, Return_Amt

    FROM@tableABC

    ) AS T

    )

    SELECTT1.ItemID, T1.Price

    FROMcte_table AS T1

    LEFT JOIN cte_table AS T2 ON T1.ItemID = T2.ItemID AND T1.RN = T2.RN - 1

    WHERET1.ItemID = @ItemID AND T1.ConditionAmt <= @ConditionAmt AND ( T2.ConditionAmt > @ConditionAmt OR T2.ConditionAmt IS NULL )