Date: Sat, 18 Mar 1995 16:14:36 EST Reply-To: The NOMAD2 Discussion List Sender: The NOMAD2 Discussion List From: "William J. Ryan" Subject: reading backward Dave: Response to your mail: > I have a master with 3 keys, key 1 is 099, key 2 is > a4 and key 3 is datetime. I am trying to match key 1 > key 2 and +- 2 minutes on the datetime field to > an external file. Problem is I have to read file > backward. I have tried selecting each pass through > on ge min(datetime) and max(datetime). Then I use > last and move backward using previous. It works > but very poor performance when I issue the last command. > Also poor performance on the first previous command. > Selects are on keys: select xxx=key1, select xxx = key2, > select xxx le max datetime; Any help would be appreciated. Assuming that you have: master t1 keyed k1,k2,k3; item k1 as 099; item k2 as a4; item k3 as datetime; master t2 type sequential; item f1 as 099; item f2 as a4; item f3 as datetime; Is this the kind of thing you want to do? for each t1 do; ampset t1; select from t2 f1=&k1 f2=&k2 f3 btwn(&k3-120000, &k3+119999); (do what you want to with selected records from t2 here...) end; This assumes that I have gotten the "plus or minus two minutes calculation" correct with datetime values. Anyhow, if you need to do some procedural operation on these tables, then I would expect access to t2 to be randomly fast (or slow). However, if what you really need is a third table produced from t1 and t2, then I would think that some more interesting set-based alternatives could be discovered. Can you explain which table you need to navigate backwards, and the reason for this? Bill Ryan, Information Works back to index