SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2007-08-04 : 18:45:40
|
[code]-- Prepare sample dateSET DATEFORMAT DMYDECLARE @Table1 TABLE (ID TINYINT, SmallDate SMALLDATETIME, DecimalValue SMALLMONEY)INSERT @Table1SELECT 59, '21/12/2005 00:00', 3.6600 UNION ALLSELECT 59, '28/12/2005 00:00', 3.6033 UNION ALL SELECT 59, '04/01/2006 00:00', 3.5793 UNION ALLSELECT 59, '11/01/2006 00:00', 3.5544 UNION ALLSELECT 59, '15/02/2006 00:00', 3.7262 UNION ALLSELECT 59, '22/02/2006 00:00', 3.6275 UNION ALLSELECT 59, '01/03/2006 00:00', 3.7079 UNION ALLSELECT 59, '08/03/2006 00:00', 3.8002 UNION ALLSELECT 59, '15/03/2006 00:00', 3.9038 UNION ALLSELECT 59, '22/03/2006 00:00', 3.8700 UNION ALLSELECT 59, '29/03/2006 00:00', 3.9738 UNION ALLSELECT 59, '05/04/2006 00:00', 4.0845 UNION ALLSELECT 59, '17/05/2006 00:00', 4.2838 UNION ALLSELECT 59, '24/05/2006 00:00', 4.1270 UNION ALLSELECT 59, '31/05/2006 00:00', 4.2867 UNION ALLSELECT 59, '07/06/2006 00:00', 4.3417 UNION ALLSELECT 59, '14/06/2006 00:00', 4.2423 UNION ALLSELECT 59, '21/06/2006 00:00', 4.3489 UNION ALLSELECT 59, '28/06/2006 00:00', 4.4291 UNION ALLSELECT 59, '05/07/2006 00:00', 4.4821 UNION ALLSELECT 59, '12/07/2006 00:00', 4.4294 UNION ALLSELECT 59, '19/07/2006 00:00', 4.3523 UNION ALLSELECT 59, '26/07/2006 00:00', 4.3005 UNION ALLSELECT 59, '02/08/2006 00:00', 4.2806 UNION ALLSELECT 59, '20/09/2006 00:00', 4.1319 UNION ALLSELECT 59, '27/09/2006 00:00', 4.0452 UNION ALLSELECT 59, '04/10/2006 00:00', 4.0837 UNION ALLSELECT 59, '11/10/2006 00:00', 4.1832 UNION ALLSELECT 59, '18/10/2006 00:00', 4.1743DECLARE @Table2 TABLE (ID TINYINT, SmallDate SMALLDATETIME)INSERT @Table2SELECT 1, '21/12/2005 00:00' UNION ALLSELECT 2, '28/12/2005 00:00' UNION ALLSELECT 3, '04/01/2006 00:00' UNION ALLSELECT 4, '11/01/2006 00:00' UNION ALLSELECT 5, '18/01/2006 00:00' UNION ALLSELECT 6, '25/01/2006 00:00' UNION ALLSELECT 7, '01/02/2006 00:00' UNION ALLSELECT 8, '08/02/2006 00:00' UNION ALLSELECT 9, '15/02/2006 00:00' UNION ALLSELECT 10, '22/02/2006 00:00' UNION ALLSELECT 11, '01/03/2006 00:00' UNION ALLSELECT 12, '08/03/2006 00:00' UNION ALLSELECT 13, '15/03/2006 00:00' UNION ALLSELECT 14, '22/03/2006 00:00' UNION ALLSELECT 15, '29/03/2006 00:00' UNION ALLSELECT 16, '05/04/2006 00:00' UNION ALLSELECT 17, '12/04/2006 00:00' UNION ALLSELECT 18, '19/04/2006 00:00' UNION ALLSELECT 19, '26/04/2006 00:00' UNION ALLSELECT 20, '03/05/2006 00:00' UNION ALLSELECT 21, '10/05/2006 00:00' UNION ALLSELECT 22, '17/05/2006 00:00' UNION ALLSELECT 23, '24/05/2006 00:00' UNION ALLSELECT 24, '31/05/2006 00:00' UNION ALLSELECT 25, '07/06/2006 00:00' UNION ALLSELECT 26, '14/06/2006 00:00' UNION ALLSELECT 27, '21/06/2006 00:00' UNION ALLSELECT 28, '28/06/2006 00:00' UNION ALLSELECT 29, '05/07/2006 00:00' UNION ALLSELECT 30, '12/07/2006 00:00' UNION ALLSELECT 31, '19/07/2006 00:00' UNION ALLSELECT 32, '26/07/2006 00:00' UNION ALLSELECT 33, '02/08/2006 00:00' UNION ALLSELECT 34, '09/08/2006 00:00' UNION ALLSELECT 35, '16/08/2006 00:00' UNION ALLSELECT 36, '23/08/2006 00:00' UNION ALLSELECT 37, '30/08/2006 00:00' UNION ALLSELECT 38, '06/09/2006 00:00' UNION ALLSELECT 39, '13/09/2006 00:00' UNION ALLSELECT 40, '20/09/2006 00:00' UNION ALLSELECT 41, '27/09/2006 00:00' UNION ALLSELECT 42, '04/10/2006 00:00' UNION ALLSELECT 43, '11/10/2006 00:00' UNION ALLSELECT 44, '18/10/2006 00:00'-- Show the expected resultSELECT 59 AS ID, t2.SmallDate, (SELECT TOP 1 x.DecimalValue FROM @Table1 AS x WHERE x.SmallDate <= t2.SmallDate ORDER BY x.SmallDate DESC) AS DecimalValueFROM @Table2 AS t2LEFT JOIN @Table1 AS t1 ON t1.SmallDate = t2.SmallDateWHERE t1.ID IS NULLORDER BY t2.SmallDate[/code] E 12°55'05.25"N 56°04'39.16" |
 |
|