[AccessD] first five dates per year

Pedro Janssen pedro at plex.nl
Mon Mar 10 04:33:00 CST 2003


Hello Drew,

I will send you the structure in one week.
Today i am leaving for a week on a trip for my work.

TIA

Pedro Janssen
----- Original Message -----
From: "Drew Wutka" <DWUTKA at marlow.com>
To: <accessd at databaseadvisors.com>
Sent: Monday, March 10, 2003 12:37 AM
Subject: RE: [AccessD] first five dates per year


> Completely understand.  No problem.
>
> If Gustav's solution works best for you, that's the way to go.  If you do
> want to further the subquery solution, let me know, you could send me a
> 'blank' database, with no data, I just need the table structure (I can
fill
> in my own dummy data).
>
> Drew
>
> -----Original Message-----
> From: Pedro Janssen
> To: accessd at databaseadvisors.com
> Sent: 3/9/03 4:54 PM
> Subject: Re: [AccessD] first five dates per year
>
> Hello Gustav and Drew,
>
> thanks Gustav for your explanation. The dates where not unique.
> I used the Union All sql and now its working fine.
>
> Drew, thanks for your offer, but i can't send You an example because
> the data is classified. From the management in our hospital
> and my boss i may not present Patientdata to other. Sorry, not even to
> a database developer who wants to help me.
>
> Pedro Janssen
>
>
>
> ----- Original Message -----
> From: "Gustav Brock" <gustav at cactus.dk>
> To: "Pedro Janssen" <accessd at databaseadvisors.com>
> Sent: Sunday, March 09, 2003 3:08 PM
> Subject: Re: [AccessD] first five dates per year
>
>
> > Hi Pedro
> >
> > Well, didn't imagine you had one field only.
> >
> > Anyway, here's the SQL to extract those dates for three years.
> > If dates are not unique, you'll have to replace every occurrence of
> > UNION with UNION ALL as shown:
> >
> > <SQL>
> >
> > PARAMETERS
> >   Year Short;
> > SELECT TOP 5
> >   Year AS Year5,
> >   [datum]
> > FROM
> >   tblTrans
> > WHERE
> >   [datum] >= DateSerial([Year],1,1)
> > UNION ALL
> > SELECT TOP 5
> >   Year+1 AS Year5,
> >   [datum]
> > FROM
> >   tblTrans
> > WHERE
> >   [datum] >= DateSerial([Year]+1,1,1)
> > UNION ALL
> > SELECT TOP 5
> >   Year+2 AS Year5,
> >   [datum]
> > FROM
> >   tblTrans
> > WHERE
> >   [datum] >= DateSerial([Year]+2,1,1)
> > ORDER BY
> >   Year5,
> >   [datum];
> >
> > </SQL>
> >
> > If dates are not unique but you wish to extract the first five unique
> > dates for each year, you'll have to group by the date like this:
> >
> > <SQL>
> >
> > PARAMETERS
> >   Year Short;
> > SELECT TOP 5
> >   Year AS Year5,
> >   [datum]
> > FROM
> >   tblTrans
> > WHERE
> >   [datum] >= DateSerial([Year],1,1)
> > GROUP BY
> >   [datum]
> > UNION
> > SELECT TOP 5
> >   Year+1 AS Year5,
> >   [datum]
> > FROM
> >   tblTrans
> > WHERE
> >   [datum] >= DateSerial([Year]+1,1,1)
> > GROUP BY
> >   [datum]
> > UNION
> > SELECT TOP 5
> >   Year+2 AS Year5,
> >   [datum]
> > FROM
> >   tblTrans
> > WHERE
> >   [datum] >= DateSerial([Year]+2,1,1)
> > GROUP BY
> >   [datum]
> > ORDER BY
> >   Year5,
> >   [datum];
> >
> > </SQL>
> >
> > All this, of course, assumes that your date field is of type
> > date/time-value.
> >
> > /gustav
> >
> > > When i use only the part of the query with Year the result is good,
> but
> the
> > > Parameters is asking for the year and afterthat for Year5. I don't
> > > understand this.
> > > When i use Year and Union Year+1 i get result that don't fit.
> > > Maybe it has something to do with the fieldnames. In your query
> which
> field
> > > is ID and which field is DateTrans.
> >
> > > For example in TblTrans i only have one field [datum].
> > > From this field [datum] i need each year the first 5 dates.
> > > Couls you give me the sql for Year and Year+1.
> >
> > >> Sure. In addition to the correct comments of Drew, here is the
> union
> > >> query which collects data from maximum three years. If you need
> more
> > >> years, simply insert more "Union Select ..." sections where you for
> > >> each section increase by 1 the number to add to Year.
> > >>
> > >> <SQL>
> > >>
> > >> PARAMETERS
> > >>   Year Short;
> > >> SELECT TOP 5
> > >>   Year AS Year5,
> > >>   ID
> > >> FROM
> > >>   tblTrans
> > >> WHERE
> > >>   DateTrans >= DateSerial([Year],1,1)
> > >> UNION
> > >> SELECT TOP 5
> > >>   Year+1 AS Year5,
> > >>   ID
> > >> FROM
> > >>   tblTrans
> > >> WHERE
> > >>   DateTrans >= DateSerial([Year]+1,1,1)
> > >> UNION
> > >> SELECT TOP 5
> > >>   Year+2 AS Year5,
> > >>   ID
> > >> FROM
> > >>   tblTrans
> > >> WHERE
> > >>   DateTrans >= DateSerial([Year]+2,1,1)
> > >> ORDER BY
> > >>   Year5,
> > >>   ID;
> > >>
> > >> </SQL>
> > >>
> > >> You will, of course, have to change the names of table and fields
> to
> > >> those of your table.
> >
> > _______________________________________________
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> >
>
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>




More information about the AccessD mailing list