Sorting a query on part of a date.

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Neil Grantham

    Sorting a query on part of a date.

    Hi

    I have a Report based on a query, whose code looks like this:
    SELECT Nursery.ChildID , Nursery.[Child Forenames], Nursery.[Child
    Surname], Nursery.[Child Familiar Name], Nursery.ChildDO B,
    GetIntakeTerm([ChildDOB]) AS IntakeTerm
    FROM Nursery
    GROUP BY Nursery.ChildID , Nursery.[Child Forenames], Nursery.[Child
    Surname], Nursery.[Child Familiar Name], Nursery.ChildDO B,
    GetIntakeTerm([ChildDOB]);

    The GetIntakeTerm is a Module that calculates which Term a child falls
    in to relating to their date of Birth and looks like this:
    Function GetIntakeTerm(C hildDOB) As String
    Select Case Month(ChildDOB)
    Case 1 To 3
    GetIntakeTerm = "Spring"
    Case 4 To 9
    GetIntakeTerm = "Summer"
    Case 10 To 12
    GetIntakeTerm = "Autumn"
    End Select
    End Function

    I would really like the report to sort on both the Year and Term, so
    that it will be a year on year report of children attending a nursery
    and the Term they start in.

    I have looked at DatePart, but would really appreciate some
    suggestions on how to modify the code to achieve my goal.

    Thanks in advance
    Neil
  • Bob Quintal

    #2
    Re: Sorting a query on part of a date.

    neil40@btintern et.com (Neil Grantham) wrote in
    news:c66a9b10.0 403311613.4cce5 4f@posting.goog le.com:
    [color=blue]
    > Hi
    >
    > I have a Report based on a query, whose code looks like this:
    > SELECT Nursery.ChildID , Nursery.[Child Forenames],
    > Nursery.[Child Surname], Nursery.[Child Familiar Name],
    > Nursery.ChildDO B, GetIntakeTerm([ChildDOB]) AS IntakeTerm
    > FROM Nursery
    > GROUP BY Nursery.ChildID , Nursery.[Child Forenames],
    > Nursery.[Child Surname], Nursery.[Child Familiar Name],
    > Nursery.ChildDO B, GetIntakeTerm([ChildDOB]);
    >
    > The GetIntakeTerm is a Module that calculates which Term a
    > child falls in to relating to their date of Birth and looks
    > like this: Function GetIntakeTerm(C hildDOB) As String
    > Select Case Month(ChildDOB)
    > Case 1 To 3
    > GetIntakeTerm = "Spring"
    > Case 4 To 9
    > GetIntakeTerm = "Summer"
    > Case 10 To 12
    > GetIntakeTerm = "Autumn"
    > End Select
    > End Function
    >
    > I would really like the report to sort on both the Year and
    > Term, so that it will be a year on year report of children
    > attending a nursery and the Term they start in.
    >
    > I have looked at DatePart, but would really appreciate some
    > suggestions on how to modify the code to achieve my goal.
    >
    > Thanks in advance
    > Neil
    >[/color]
    Remove the group by stuff from the query. Open your report in
    design mode. click on the "sorting and grouping" icon in the
    toolbar. Enter the fields you want ot group and sort by.

    Save the report and test.

    Bob Q





    Comment

    Working...