Adam Rich wrote:
Now user Ben has passed his mobile to user Josh and we issued Josh his
mobile on 2008-10-15.
1. Is it possible for me to write a query that will have the fields
call.call_id,
call.datetime,
mobile_custodian.user_id,
call.mobile_no
call.charge
that will use call.datetime and lookup the date range from
mobile_custodian.issue_date and mobile_custodian.return_date to
identify the right user for each call?
2. Do I need to change the issue_date & return_date fields to
timestamp to perform the above?
No, a date will work fine. Try this:
select call.call_id,
call.datetime,
mobile_custodian.user_id,
call.mobile_no
call.charge
from call, mobile_custodian
where call.mobile_no = mobile_custodian.mobile_no
and call.datetime between mobile_custodian.issue_date
and mobile_custodian.return_date
Here's my version of the query which takes into account calls that are made
with the current custodian, therefore the return_date field is null (sorry for
the lack of formatting):
select c.call_id, c.datetime, mc.user_id, c.mobile_no, c.charge from
mobile_custodian mc
inner join call c using (mobile_no) where (c.datetime between mc.issue_date and
mc.return_date) or (c.datetime > mc.issue_date and mc.return_date is null)
Raymond