Hey all,

My Question:

1. I got a table which tracks errors on systems:

mysql> select id, sys_id, beginn, end, status from error_t;
+----+--------+---------------------+---------------------+---------+
| id | sys_id | begin               | end                 | state   |
+----+--------+---------------------+---------------------+---------+
|  1 |      1 | 1970-01-01 01:01:01 | 1970-01-01 01:01:01 | BEHOBEN |
|  2 |      2 | 1970-01-01 01:01:01 | 1970-01-01 01:01:01 | BEHOBEN |
|  3 |      3 | 1970-01-01 01:01:01 | 1970-01-01 01:01:01 | BEHOBEN |
|  4 |      4 | 1970-01-01 01:01:01 | 1970-01-01 01:01:01 | BEHOBEN |
|  5 |      1 | 1970-01-01 01:01:01 | 1970-01-01 01:01:01 | BEHOBEN |
|  6 |      2 | 1970-01-01 01:01:01 | 1970-01-01 01:01:01 | BEHOBEN |
|  7 |      3 | 1970-01-01 01:01:01 | 1970-01-01 01:01:01 | BEHOBEN |
|  8 |      4 | 1970-01-01 01:01:01 | 1970-01-01 01:01:01 | BEHOBEN |
|  9 |      1 | 1971-01-01 01:01:01 | 1971-01-01 02:01:01 | AKUT    |
| 10 |      2 | 1971-01-01 01:01:01 | 1971-01-01 02:01:01 | AKUT    |
| 11 |      3 | 1971-01-01 01:01:01 | 1971-01-01 02:01:01 | AKUT    |
| 12 |      4 | 1971-01-01 01:01:01 | 1971-01-01 02:01:01 | AKUT    |
+----+--------+---------------------+---------------------+---------+

BEHOBEN means SOLVED
AKUT means THERE_IS_STILL_AN_ERROR

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2. I got a table containing the systems:

mysql> select * from
system_t;                                                  
+----+--------------------+---------+----------+--------+                     
| | id | name               | deleted | position | group  |
+----+--------------------+---------+----------+--------+
|  1 | www.test.de        |       0 |     NULL |   NULL |
|  2 | partner.test.de    |       0 |     NULL |   NULL |
|  3 | app.test.de        |       0 |     NULL |   NULL |
|  4 | web.test.de        |       0 |     NULL |   NULL |
+----+--------------------+---------+----------+--------+

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3. I got a table defining groups for systems with a certain weight for
sorting:
mysql> select * from group_t;
+----+----------------+-------------+
| id | description    | order       |
+----+----------------+-------------+
|  1 | test1          |           5 |
|  2 | test2          |           9 |
|  5 | another_group  |          90 |
+----+----------------+-------------+


----------------
Now I need the latest state. As the "id" of "error_t" is AUTO_INCREMENT,
the latest state of a system is the one with the MAX(error_t.id) out of
the group of similar sys_id, i.e. the line containing id = 9 AND sys_id
= 1. I also want to bring the status in a certain order
(-->group_t.order) .

How can I tell mysql, to fetch the that row, which fits to the MAX(id)
of a system? The example below has been my failed try. I want the LATEST
row, i.e. something like "WHERE max_id = err.id"


mysql> SELECT DISTINCT
sys.name,err.state,err.end,err.begin,err.id,MAX(err.id) AS max_id FROM
system_t AS sys LEFT JOIN error_t AS err ON sys.id = err.sys_id LEFT
JOIN group_t AS gr ON sys.group = gr.id WHERE sys.deleted = 0 GROUP BY
sys.name ORDER BY gr.order DESC, gr.order DESC, sys.name ASC;
+-----------------+---------+------------+------------+------+--------+
| name            | state   | end        | begin      | id   | max_id |
+-----------------+---------+------------+------------+------+--------+
| app.test.de     | BEHOBEN | 1970-01-01 | 1970-01-01 |    3 |     11 |
| partner.test.de | BEHOBEN | 1970-01-01 | 1970-01-01 |    2 |     10 |
| web.test.de     | BEHOBEN | 1970-01-01 | 1970-01-01 |    4 |     12 |
| www.test.de     | BEHOBEN | 1970-01-01 | 1970-01-01 |    1 |      9 |
+-----------------+---------+------------+------------+------+--------+

Either I'm stupid or it's impossible. Let's see which case is true. :)


cheers & ThX for any help...

Chris

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to