Обсуждение: date problem
Hi, I thought this would be a classic sort of query but google did no give me the answer. I am attempting to select records where one of the dates is the latest date before today select max(date) from expo where date < now() works for one record but other fields I need must be in aggregate or grouped. Is there a simple SQL request to get the most recent records from a set of joined tables? TIA Tony
# tony@tgds.net / 2005-05-16 09:48:08 +0200:
> I am attempting to select records where one of the dates is the latest
> date before today
>
> select max(date) from expo where date < now()
>
> works for one record but other fields I need must be in aggregate or
> grouped. Is there a simple SQL request to get the most recent records
> from a set of joined tables?
select *
from expo
where date = (select max(date)
from expo
where date < now()) as x;
--
How many Vietnam vets does it take to screw in a light bulb?
You don't know, man. You don't KNOW.
Cause you weren't THERE. http://bash.org/?255991
tony wrote:
> Hi,
>
> I thought this would be a classic sort of query but google did no give
> me the answer.
>
> I am attempting to select records where one of the dates is the latest
> date before today
>
> select max(date) from expo where date < now()
>
> works for one record but other fields I need must be in aggregate or
> grouped. Is there a simple SQL request to get the most recent records
> from a set of joined tables?
SELECT * FROM expo WHERE date = (SELECT max(date) FROM expo WHERE date <
now());
In fact, you might want to rewrite the subselect. Oh, and "date" is
likely to cause trouble as a column-name.
SELECT * FROM expo
WHERE my_date = (
SELECT my_date FROM expo
WHERE my_date < now()
ORDER BY my_date DESC LIMIT 1
)
--
Richard Huxton
Archonet Ltd
Le lundi 16 mai 2005 à 10:30 +0200, Roman Neuhauser a écrit : > select * > from expo > where date = (select max(date) > from expo > where date < now()) as x; Thanks! I keep forgetting this for some strange reason... I was putting it in the "from" instead of the "where" Tony
Le lundi 16 mai 2005 à 09:44 +0100, Richard Huxton a écrit : > > works for one record but other fields I need must be in aggregate or > > grouped. Is there a simple SQL request to get the most recent records > > from a set of joined tables? > > SELECT * FROM expo WHERE date = (SELECT max(date) FROM expo WHERE date < > now()); > > In fact, you might want to rewrite the subselect. Oh, and "date" is > likely to cause trouble as a column-name. > > SELECT * FROM expo > WHERE my_date = ( > SELECT my_date FROM expo > WHERE my_date < now() > ORDER BY my_date DESC LIMIT 1 > ) Thanks! I wasn't really using date but for clarity had put that instead of my French column name... Tony