Re: [SQL] locked my keys in the car

From: Federico Passaro <fede(at)link(dot)it>
To: Thomas Good <tomg(at)q8(dot)nrnet(dot)org>, pgsql-sql(at)postgreSQL(dot)org
Subject: Re: [SQL] locked my keys in the car
Date: 1998-08-01 05:58:58
Message-ID: 35C2AEA2.56543064@link.it
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Thomas Good wrote:

> Hello all:
>
> I am unsuccessfully trying to convince PostgreSQL to use
> aggregates illegally as I am temporarily out_of_syntax (and
> tylenol!)
>
> What I would like to do is this:
>
> SELECT id, MAX(date)
> FROM table
> WHERE office='M'
> AND case='A' OR case='I';
>
> What the heck am I doing? I wish I knew but what I am _trying_
> to do is this:
>
> I want to select all records that are current A(dmits) or
> I(ncoming) status - - - in M(y) office. The problem is that
> multiple records exist and I need to get only the last record
> for *each* patient id. I thought the last date would do it but
> I can't get SQL to tolerate my bad syntax.
> (This is a case of porting a foxpro db which is very short on
> primary keys, into SQL...the original code is more confused than
> I am...)
>
> There are multiple cases that are marked `active' for each patient,
> even in a given unit. God knows why...
>
> Can someone translate this pseudocode into (postgre)SQL?
>
> SELECT the most recent record for each patient (based on date of entry)
> FROM accounts table
> WHERE treating_unit = 'charstr'
> AND the case is marked 'Active' or 'Incoming';
>
> Bearing in mind that the pt_id is not unique...ouch.
>
> Thanks and a free foxpro database to who ever helps me solve this!
>
> ---------- Sisters of Charity Medical Center ----------
> Department of Psychiatry
> ----
> Thomas Good <tomg(at)q8(dot)nrnet(dot)org>
> Coordinator, North Richmond C.M.H.C. Information Systems
> 75 Vanderbilt Ave, Quarters 8 Phone: 718-354-5528
> Staten Island, NY 10304 Fax: 718-354-5056

Hi Thomas,

I think you should tell SQL "to get only the last record for *each*
patient id.":

SELECT id, MAX(date)
FROM table
WHERE office='M'
AND case='A' OR case='I'
GROUP BY id

I hope this help, cheers

federico

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Marc Howard Zuckman 1998-08-01 14:31:55 Re: [SQL] pg_time
Previous Message Eric McKeown 1998-08-01 02:59:00 date versus datetime?