Also you can use LEFT JOIN and Correlated Subquery like this:DECLARE @Table1 Table (SalesOrder char(2), SalesProduct char(2), SalesDate DateTime)INSERT INTO @Table1SELECT 'S1','P1','20110328' UNION ALLSELECT 'S2','P1','20110329' UNION ALLSELECT 'S3','P1','20110330'DECLARE @Table2 Table(IP_Product char(2), IP_Date datetime, IP_Qty int)INSERT INTO @Table2SELECT 'P1','20110328', 10 UNION ALLSELECT 'P1','20110330', 13 SELECT T1.*, COALESCE(T2.IP_Qty, (SELECT TOP 1 IP_Qty FROM @Table2 WHERE IP_Date < SalesDate ORDER BY Ip_date DESC)) AS IP_Qty FROM @Table1 AS T1 LEFT JOIN @Table2 AS T2 ON T1.SalesProduct = T2.IP_Product AND T1.SalesDate = T2.IP_Date; /*SalesOrder SalesProduct SalesDate IP_Qty---------- ------------ ----------------------- -----------S1 P1 2011-03-28 00:00:00.000 10S2 P1 2011-03-29 00:00:00.000 10S3 P1 2011-03-30 00:00:00.000 13*/
______________________