I like this approach. That middle query inserting into the temp table
might be what I need for the view.

Thanks,
Judah

On Tue, Feb 24, 2009 at 12:48 PM,  <[email protected]> wrote:
>
> These sort of queries are always kind of annoying.  My approach is to to
> use an intermediate temp table, group by patient and day, and find the
> min() appointment date.  Then join that temp table back to your
> appointment table to pull out the rest of the information for that first
> appointment based on the min date you found.  Keep in mind, this
> approach ASSUMES that one patient will never have two appointments at
> the same time on the same day.
>
>
> This runs on SQL Server 2000.  It is a little crude, but should get the
> point across:
>
> declare @appointment table
> (id int identity primary key,
> patient_id int,
> doctor varchar(50),
> appointment_date datetime )
>
> declare @first_appointment_per_day table
> (patient_id int,
> appointment_date datetime)
>
>
> insert into @appointment (patient_id, doctor, appointment_date)
>          select 1, 'McDreamy', '2009-02-24 8:00'
> union all select 1, 'McSteamy', '2009-02-24 8:30'
> union all select 1, 'McRib',    '2009-02-25 9:00'
> union all select 1, 'McSteamy', '2009-02-25 11:00'
> union all select 2, 'McDreamy', '2009-02-24 9:00'
> union all select 2, 'McSteamy', '2009-02-24 9:30'
> union all select 2, 'McRib',    '2009-02-25 7:00'
> union all select 2, 'McSteamy', '2009-02-25 7:45'
>
> insert into @first_appointment_per_day
> (patient_id, appointment_date)
> (select patient_id, min(appointment_date)
> from @appointment
> group by patient_id, convert(varchar(10), appointment_date, 101))
>
> select app.patient_id, app.appointment_date, app.doctor
> from @first_appointment_per_day tmp1
> inner join @appointment app on tmp1.patient_id = app.patient_id
>        and tmp1.appointment_date = app.appointment_date
>
> ~Brad
>
> -------- Original Message --------
> Subject: Semi-OT: SQL question...Select first item for each person for
> each day
> From: Judah McAuley <[email protected]>
> Date: Tue, February 24, 2009 1:53 pm
> To: cf-talk <[email protected]>
>
>  What I need to do right now is generate a view that lists only the
> first appointment
> for each patient each day.
>
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;207172674;29440083;f

Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:319774
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to