[AccessD] Carry Forward in a query

A.D.TEJPAL adtp at airtelbroadband.in
Thu Nov 16 00:12:55 CST 2006


Chester,

    It is presumed that table T_PriceIndex too has the field named Pattern, with appropriate entries. In such a case, you could try modified SQL as follows:

SELECT T_PriceCurrent.SDate, 
(Select Price from T_PriceIndex as T1 where T1.Pattern = T_PriceCurrent.Pattern And T1.SDate=(Select Max(SDate) 
from T_PriceIndex AS T2 where T2.Pattern = T_PriceCurrent.Pattern And  T2.SDate<=T_PriceCurrent.SDate)) AS PriceCurrent
FROM T_PriceCurrent;

    Caution: Thi is AirCode - The suggested SQL has not been subjected to actual test.

Best wishes,
A.D.Tejpal
---------------

  ----- Original Message ----- 
  From: Kaup, Chester 
  To: Access Developers discussion and problem solving 
  Sent: Wednesday, November 15, 2006 04:10
  Subject: Re: [AccessD] Carry Forward in a query


  Here is what I have now. One table with dates and one table like below.
  Query SQL as below. This works great.

  SELECT T_PriceCurrent.SDate, 
  (Select Price from T_PriceIndex as T1 where T1.SDate=(Select Max(SDate) 
  from T_PriceIndex AS T2 where T2.SDate<=T_PriceCurrent.SDate)) 
  AS PriceCurrent
  FROM T_PriceCurrent;

  SDate Price
  1/1/2005 8.56
  1/23/2005 8.73
  2/14/2005 8.40
  3/1/2005 8.00
  3/12/2005 8.45
  3/27/2005 8.95
  4/7/2005 8.12
  4/30/2005 7.95
  5/14/2005 8.03
  5/27/2005 8.24
  6/10/2005 9.03
  6/25/2005 9.17
  7/3/2005 9.25
  7/27/2005 9.40
  8/3/2005 9.64

  What I cannot figure how to do is make it work if table looks like
  below. I need output for each Pattern.
  Pattern SDate Price
  1 1/1/2005 8.56
  1 1/23/2005 8.73
  1 2/14/2005 8.40
  1 3/1/2005 8.00
  1 3/12/2005 8.45
  1 3/27/2005 8.95
  1 4/7/2005 8.12
  1 4/30/2005 7.95
  1 5/14/2005 8.03
  1 5/27/2005 8.24
  1 6/10/2005 9.03
  1 6/25/2005 9.17
  1 7/3/2005 9.25
  1 7/27/2005 9.40
  1 8/3/2005 9.64
  2 1/7/2005 8.27
  2 1/24/2005 8.71
  2 2/13/2005 8.35
  2 3/2/2005 8.02
  2 3/13/2005 8.44
  2 3/28/2005 8.93
  2 4/6/2005 8.10
  2 4/28/2005 7.98
  2 5/15/2005 8.05
  2 5/25/2005 8.20
  2 6/9/2005 9.00
  2 6/20/2005 9.15
  2 7/1/2005 9.23
  2 7/25/2005 9.35
  2 8/4/2005 9.65
  2 8/15/2005 9.50

  Thanks for any ideas.

  -----Original Message-----
  From: accessd-bounces at databaseadvisors.com
  [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Hale, Jim
  Sent: Tuesday, November 14, 2006 3:59 PM
  To: 'Access Developers discussion and problem solving'
  Subject: Re: [AccessD] Carry Forward in a query

  If I understand what you want to do, I have done this with a non
  cartesian
  join. I create a table with a one field record and  one record for each
  date. In the query window I place this table and the table with the
  record
  you want to duplicate WITHOUT ANY JOIN. the resulting data set produces
  one
  record for each date. HTH
  Jim Hale

  -----Original Message-----
  From: Kaup, Chester [mailto:Chester_Kaup at kindermorgan.com]
  Sent: Tuesday, November 14, 2006 3:13 PM
  To: Access Developers discussion and problem solving
  Subject: [AccessD] Carry Forward in a query

  I have a table of data that has a record about every 6 months. I would
  like to generate a record for every month using the previous months data until there is data for the current records month. I can do this in code but had a coworker ask if it could be done in a query. I am not coming up with an answer. Your thoughts please. 

  Chester Kaup



More information about the AccessD mailing list