MS Access Forum / Queries / February 2008
Filter In A Query
|
|
Thread rating:  |
Ange Kappas - 27 Feb 2008 13:01 GMT Hi, As you can see below I have a query which includes records from the reservation table, but I want to show only those records which their arrival date ARRIVAL of the RESERVATIONS table is equal to the value of RUNDAY in the HOUSEKEEPING DATA Query.
SELECT ROOMS.ROOMS, [HOUSEKEEPING DATA].HOTELAPT, [HOUSEKEEPING DATA].PERSONS, [HOUSEKEEPING DATA].RESNAME, [HOUSEKEEPING DATA].ARRIVAL, [HOUSEKEEPING DATA].DEPARTURE, [HOUSEKEEPING DATA].TOWELS, [HOUSEKEEPING DATA].[TOWELS NEXT], [HOUSEKEEPING DATA].LINEN, [HOUSEKEEPING DATA].[LINEN NEXT], [HOUSEKEEPING DATA].RUNDAY, RESERVATIONS.PERSONS, RESERVATIONS.RESNAME, RESERVATIONS.COMPANY, RESERVATIONS.ARRIVAL FROM (ROOMS LEFT JOIN [HOUSEKEEPING DATA] ON ROOMS.ROOMS = [HOUSEKEEPING DATA].ROOMNO) LEFT JOIN RESERVATIONS ON ROOMS.ROOMS = RESERVATIONS.ROOMNO GROUP BY ROOMS.ROOMS, [HOUSEKEEPING DATA].HOTELAPT, [HOUSEKEEPING DATA].PERSONS, [HOUSEKEEPING DATA].RESNAME, [HOUSEKEEPING DATA].ARRIVAL, [HOUSEKEEPING DATA].DEPARTURE, [HOUSEKEEPING DATA].TOWELS, [HOUSEKEEPING DATA].[TOWELS NEXT], [HOUSEKEEPING DATA].LINEN, [HOUSEKEEPING DATA].[LINEN NEXT], [HOUSEKEEPING DATA].RUNDAY, [HOUSEKEEPING DATA].ROOMNO, RESERVATIONS.PERSONS, RESERVATIONS.RESNAME, RESERVATIONS.COMPANY, RESERVATIONS.ARRIVAL;
Thanks Ange
John Spencer - 27 Feb 2008 14:07 GMT Just add a where clause before the group by.
SELECT ROOMS.ROOMS , [HOUSEKEEPING DATA].HOTELAPT , [HOUSEKEEPING DATA].PERSONS , [HOUSEKEEPING DATA].RESNAME , [HOUSEKEEPING DATA].ARRIVAL , [HOUSEKEEPING DATA].DEPARTURE , [HOUSEKEEPING DATA].TOWELS , [HOUSEKEEPING DATA].[TOWELS NEXT] , [HOUSEKEEPING DATA].LINEN , [HOUSEKEEPING DATA].[LINEN NEXT] , [HOUSEKEEPING DATA].RUNDAY , RESERVATIONS.PERSONS , RESERVATIONS.RESNAME , RESERVATIONS.COMPANY , RESERVATIONS.ARRIVAL FROM (ROOMS LEFT JOIN [HOUSEKEEPING DATA] ON ROOMS.ROOMS = [HOUSEKEEPING DATA].ROOMNO) LEFT JOIN RESERVATIONS ON ROOMS.ROOMS = RESERVATIONS.ROOMNO
WHERE Reservations.Arrival = [HouseKeeping Data].RunDay
GROUP BY ROOMS.ROOMS , [HOUSEKEEPING DATA].HOTELAPT , [HOUSEKEEPING DATA].PERSONS , [HOUSEKEEPING DATA].RESNAME , [HOUSEKEEPING DATA].ARRIVAL , [HOUSEKEEPING DATA].DEPARTURE , [HOUSEKEEPING DATA].TOWELS , [HOUSEKEEPING DATA].[TOWELS NEXT] , [HOUSEKEEPING DATA].LINEN , [HOUSEKEEPING DATA].[LINEN NEXT] , [HOUSEKEEPING DATA].RUNDAY , [HOUSEKEEPING DATA].ROOMNO , RESERVATIONS.PERSONS , RESERVATIONS.RESNAME , RESERVATIONS.COMPANY , RESERVATIONS.ARRIVAL
By the way you can accomplish the same thing without grouping by including DISTINCT after SELECT in the query.
SELECT DISTINCT ROOMS.ROOMS , [HOUSEKEEPING DATA].HOTELAPT , [HOUSEKEEPING DATA].PERSONS , [HOUSEKEEPING DATA].RESNAME , [HOUSEKEEPING DATA].ARRIVAL , [HOUSEKEEPING DATA].DEPARTURE , [HOUSEKEEPING DATA].TOWELS , [HOUSEKEEPING DATA].[TOWELS NEXT] , [HOUSEKEEPING DATA].LINEN , [HOUSEKEEPING DATA].[LINEN NEXT] , [HOUSEKEEPING DATA].RUNDAY , RESERVATIONS.PERSONS , RESERVATIONS.RESNAME , RESERVATIONS.COMPANY , RESERVATIONS.ARRIVAL FROM (ROOMS LEFT JOIN [HOUSEKEEPING DATA] ON ROOMS.ROOMS = [HOUSEKEEPING DATA].ROOMNO) LEFT JOIN RESERVATIONS ON ROOMS.ROOMS = RESERVATIONS.ROOMNO
WHERE Reservations.Arrival = [HouseKeeping Data].RunDay
 Signature John Spencer Access MVP 2002-2005, 2007-2008 Center for Health Program Development and Management University of Maryland Baltimore County .
> Hi, > As you can see below I have a query which includes records from the [quoted text clipped - 3 lines] > Thanks > Ange Ange Kappas - 27 Feb 2008 16:43 GMT Hi John, Tried it but it returned with no results since there is a record which has the same value in the Arrival field as the runday field. Ange
> Just add a where clause before the group by. > [quoted text clipped - 67 lines] >> Thanks >> Ange Ange Kappas - 27 Feb 2008 19:33 GMT Hi John, I worked it out, I made a separate query filtering out todays arrivals called it qryarrivals and added it to the query housekeeping adjusted the union and it worked. Here is the SQL to it:
SELECT ROOMS.ROOMS, [HOUSEKEEPING DATA].HOTELAPT, [HOUSEKEEPING DATA].PERSONS, [HOUSEKEEPING DATA].RESNAME, [HOUSEKEEPING DATA].ARRIVAL, [HOUSEKEEPING DATA].DEPARTURE, [HOUSEKEEPING DATA].TOWELS, [HOUSEKEEPING DATA].[TOWELS NEXT], [HOUSEKEEPING DATA].LINEN, [HOUSEKEEPING DATA].[LINEN NEXT], [HOUSEKEEPING DATA].RUNDAY, qryARRIVALS.ROOMNO, qryARRIVALS.COMPANY, qryARRIVALS.ARRIVAL, qryARRIVALS.PERSONS, qryARRIVALS.RESNAME FROM qryARRIVALS RIGHT JOIN (ROOMS LEFT JOIN [HOUSEKEEPING DATA] ON ROOMS.ROOMS = [HOUSEKEEPING DATA].ROOMNO) ON qryARRIVALS.ROOMNO = ROOMS.ROOMS GROUP BY ROOMS.ROOMS, [HOUSEKEEPING DATA].HOTELAPT, [HOUSEKEEPING DATA].PERSONS, [HOUSEKEEPING DATA].RESNAME, [HOUSEKEEPING DATA].ARRIVAL, [HOUSEKEEPING DATA].DEPARTURE, [HOUSEKEEPING DATA].TOWELS, [HOUSEKEEPING DATA].[TOWELS NEXT], [HOUSEKEEPING DATA].LINEN, [HOUSEKEEPING DATA].[LINEN NEXT], [HOUSEKEEPING DATA].RUNDAY, [HOUSEKEEPING DATA].ROOMNO, qryARRIVALS.ROOMNO, qryARRIVALS.COMPANY, qryARRIVALS.ARRIVAL, qryARRIVALS.PERSONS, qryARRIVALS.RESNAME;
Thanks.
Ange
> Hi, > As you can see below I have a query which includes records from the [quoted text clipped - 20 lines] > Thanks > Ange
|
|
|