Hi,

My sql is rusty but I'm trying to solve a problem and I'm getting a result that does not make sense.

The table is

mysql> select * from cust_full;
+-------+---------+----------+------------+
| name  | item_id | location | acq_date   |
+-------+---------+----------+------------+
| Jim   |       1 | OH       | 2007-03-15 |
| Mary  |       2 | PA       | 2007-01-15 |
| Sally |       1 | OH       | 2007-03-15 |
| John  |       0 |          | 0000-00-00 |
| Jim   |       3 | PA       | 2008-01-03 |
+-------+---------+----------+------------+

I want to get back only the most recent entry for each person and I don't care about the order. I want the result to show Jim with the acq_date of "2008-01-03", Mary and Sally with the location and date for all of them. However, when I run what I think should be the sql, I get:

mysql> select name, item_id, location, max(acq_date) from cust_full group by name;
+-------+---------+----------+---------------+
| name  | item_id | location | max(acq_date) |
+-------+---------+----------+---------------+
| Jim   |       1 | OH       | 2008-01-03    |
| John  |       0 |          | 0000-00-00    |
| Mary  |       2 | PA       | 2007-01-15    |
| Sally |       1 | OH       | 2007-03-15    |
+-------+---------+----------+---------------+


Why am I getting the wrong location for Jim?  It should be "PA".

This is on a Mac.

joe.
813.528.3859
My LinkedIn profile:  http://www.linkedin.com/in/joepearl

" We could learn a lot from crayons... Some are sharp, some are pretty and some are dull. Some have weird names, and all are different colors, but they all have to live in the same box. " - unknown







Reply via email to