-1

2つのselectステートメントがあります。1つは最新の失敗ステータスを取得するためのもので、もう1つは最新の失敗ステータスを取得するためのものです。3番目に、最新のステータスが「失敗」または「失敗」であるが、データがマージされたように見える場合は、ステートメントを作成する必要がありますか?失敗したものと失敗したものはわずかに異なる可能性があるため、LIKEを使用しています

mysql> select max(scheduled_start),node_name,schedule_name,status from `events_server` WHERE status LIKE '%Failed%'and node_name='name';
+----------------------+----------------+---------------+-----------+
| max(scheduled_start) | node_name      | schedule_name | status    |
+----------------------+----------------+---------------+-----------+
| 2013-01-30 15:00:00  | name           | name_1500     | Failed  1 |
+----------------------+----------------+---------------+-----------+
1 row in set (0.01 sec)

mysql> select max(scheduled_start),node_name,schedule_name,status from `events_server` WHERE status LIKE '%Missed%'and node_name='name';
+----------------------+----------------+---------------+--------+
| max(scheduled_start) | node_name      | schedule_name | status |
+----------------------+----------------+---------------+--------+
| 2013-01-23 08:00:00  | name           | NAME_0800     | Missed |
+----------------------+----------------+---------------+--------+
1 row in set (0.01 sec)

mysql> select max(scheduled_start),node_name,schedule_name,status from `events_server` WHERE (status LIKE '%Failed%' OR status LIKE '%Missed%') and node_na
me='name';
+----------------------+----------------+---------------+--------+
| max(scheduled_start) | node_name      | schedule_name | status |
+----------------------+----------------+---------------+--------+
| 2013-01-30 15:00:00  | name           | NAME_0800     | Missed |
+----------------------+----------------+---------------+--------+
1 row in set (0.01 sec)
4

1 に答える 1

1

データをピボットし、ステータスごとに個別の列を返す、これに似たものを試しましたか?これにより、とステータスmax(scheduled_start)の両方が表示されます。ただし、結果を得るには、を追加する必要もあります。FailedMissedGROUP BY

select 
    max(case when status LIKE '%Failed%' then scheduled_start end) Failed,
    max(case when status LIKE '%Missed%' then scheduled_start end) Missed,
    node_name,
    schedule_name
from `events_server`
where node_name='name'
 AND (status LIKE '%Missed%' OR status LIKE '%Failed%')
group by node_name, schedule_name
于 2013-01-30T16:53:00.913 に答える