Author |
Topic |
phillikc
Starting Member
6 Posts |
Posted - 2011-08-14 : 11:51:39
|
Given a set of records like below, I'm looking for a query that would return the first ActionDate nearest, and just previous to, any given date. For example, I enter 8/2/2009 and it returns the first record it finds just previous to that date (7/20/2009). I'm kind of a beginner, and I have had trouble implementing other solutions I've found.RecID UserID UserStatus ActionDate712 rinaudofr EN 7/1/2009 10:30:35 PM713 rinaudofr EN 7/2/2009 10:30:42 PM714 rinaudofr EN 7/3/2009 10:30:51 PM715 rinaudofr EN 7/4/2009 10:30:17 PM716 rinaudofr EN 7/5/2009 10:31:16 PM717 rinaudofr EN 7/6/2009 10:31:08 PM718 rinaudofr EN 7/7/2009 10:30:41 PM719 rinaudofr EN 7/8/2009 10:30:53 PM720 rinaudofr EN 7/9/2009 10:31:06 PM721 rinaudofr EN 7/10/2009 10:31:38 PM722 rinaudofr EN 7/11/2009 10:30:20 PM723 rinaudofr EN 7/12/2009 10:36:14 PM724 rinaudofr EN 7/13/2009 10:30:22 PM725 rinaudofr EN 7/14/2009 10:30:54 PM726 rinaudofr EN 7/15/2009 10:30:47 PM727 rinaudofr EN 7/16/2009 10:31:16 PM728 rinaudofr EN 7/17/2009 10:30:31 PM729 rinaudofr EN 7/18/2009 10:30:25 PM730 rinaudofr EN 7/19/2009 10:30:20 PM731 rinaudofr EN 7/20/2009 10:30:41 PM732 rinaudofr EN 9/23/2009 2:04:12 PM733 rinaudofr EN 9/23/2009 4:28:10 PM734 rinaudofr EN 9/25/2009 4:37:46 PM735 rinaudofr EN 9/25/2009 4:38:28 PM |
|
flamblaster
Constraint Violating Yak Guru
384 Posts |
Posted - 2011-08-14 : 14:24:56
|
This will get you the date, however, if you need the record correlated to the date, there are a few more steps that you'd have to go. Here's a start:declare @inputdate dateset @inputdate='2009-08-02'declare @test table (recid int, userid varchar(30), userstatus char(2), actiondate datetime)insert into @test (recid, userid, userstatus, actiondate)values(712, 'rinaudofr', 'EN', '7/1/2009 10:30:35 PM'),(713, 'rinaudofr', 'EN', '7/2/2009 10:30:42 PM'),(714, 'rinaudofr', 'EN', '7/3/2009 10:30:51 PM'),(715, 'rinaudofr', 'EN', '7/4/2009 10:30:17 PM'),(716, 'rinaudofr', 'EN', '7/5/2009 10:31:16 PM'),(717, 'rinaudofr', 'EN', '7/6/2009 10:31:08 PM'),(718, 'rinaudofr', 'EN', '7/7/2009 10:30:41 PM'),(719, 'rinaudofr', 'EN', '7/8/2009 10:30:53 PM'),(720, 'rinaudofr', 'EN', '7/9/2009 10:31:06 PM'),(721, 'rinaudofr', 'EN', '7/10/2009 10:31:38 PM'),(722, 'rinaudofr', 'EN', '7/11/2009 10:30:20 PM'),(723, 'rinaudofr', 'EN', '7/12/2009 10:36:14 PM'),(724, 'rinaudofr', 'EN', '7/13/2009 10:30:22 PM'),(725, 'rinaudofr', 'EN', '7/14/2009 10:30:54 PM'),(726, 'rinaudofr', 'EN', '7/15/2009 10:30:47 PM'),(727, 'rinaudofr', 'EN', '7/16/2009 10:31:16 PM'),(728, 'rinaudofr', 'EN', '7/17/2009 10:30:31 PM'),(729, 'rinaudofr', 'EN', '7/18/2009 10:30:25 PM'),(730, 'rinaudofr', 'EN', '7/19/2009 10:30:20 PM'),(731, 'rinaudofr', 'EN', '7/20/2009 10:30:41 PM'),(732, 'rinaudofr', 'EN', '9/23/2009 2:04:12 PM'),(733, 'rinaudofr', 'EN', '9/23/2009 4:28:10 PM'),(734, 'rinaudofr', 'EN', '9/25/2009 4:37:46 PM'),(735, 'rinaudofr', 'EN', '9/25/2009 4:38:28 PM')select MAX(actiondate)from (select actiondatefrom @testwhere @inputdate>actiondate) a |
 |
|
|
|
|