Received: from localhost (maia-1.hub.org [200.46.204.191]) by postgresql.org (Postfix) with ESMTP id 7E9B29FB8A8 for ; Tue, 3 Jul 2007 15:33:25 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.191]) (amavisd-maia, port 10024) with ESMTP id 34675-03 for ; Tue, 3 Jul 2007 15:33:21 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.5 Received: from ganymede.ibss.net (66.49.75.50.nw.nuvox.net [66.49.75.50]) by postgresql.org (Postfix) with ESMTP id 6EF969FB7D2 for ; Tue, 3 Jul 2007 15:33:21 -0300 (ADT) Received: from [172.23.1.200] (jumper.ibss.net [172.23.1.200]) by ganymede.ibss.net (8.13.6/8.13.4) with ESMTP id l63IXCMY023879 for ; Tue, 3 Jul 2007 14:33:12 -0400 Message-ID: <468A98D3.7030206@ibss.net> Date: Tue, 03 Jul 2007 14:43:31 -0400 From: Bob Singleton User-Agent: Thunderbird 1.5.0.10 (X11/20070302) MIME-Version: 1.0 To: pgsql-sql@postgresql.org Subject: Iterate and write a previous row to a temp table? Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.90.3, clamav-milter version 0.90.3 on ganymede.ibss.net X-Virus-Status: Clean X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200707/23 X-Sequence-Number: 28758 Revisiting a Time In Status query I received help on - I'm trying to narrow down a subset of data I return for analysis. Given a statusLog as entityId, statusId, timestamp that might look something like entityId | statusId | timestamp -------------------------------------------- 001 | HLD | 2007-06-14 11:07:35.93 001 | RDY | 2007-06-15 11:07:35.93 001 | USE | 2007-06-16 11:07:35.93 001 | RDY | 2007-06-17 11:07:35.93 001 | MNT | 2007-06-18 11:07:35.93 I need to pull for a given span of time - say 2007-06-16 00:00:00.01 (let me call it startTime) to 2007-06-17 23:59:59.99 (call it endTime) in such a way that rows with a timestamp between startTime and endTime AND the latest record prior to or equal to startTime are returned. In the above simplified example, only the second and third rows would be returned. A colleague suggested a temp table, but I'm unsure how to iterate until I pass the startTime and then write the _previous_ and all subsequent rows to a temp table, stopping when I pass the endTime parameter. Any hints? Thanks! Bob Singleton