会社の部門のサービスの現在のステータスを表示するクエリを作成しようとしています。私が書いたものは機能していません。間違った方向に進んでいるような気がします。
SELECT MAX(v_StatusEvents.EventTimeStamp) as EventTimeStamp
, MAX(v_StatusEvents.StatusTypeID) as StatusTypeID
, v_StatusEvents.ServiceID
, v_StatusEvents.StatusTypeDescription
, v_StatusEvents.ServiceName
, v_StatusEvents.CategoryName
FROM v_StatusEvents
WHERE v_StatusEvents.CategoryID = 100
AND YEAR(v_StatusEvents.EventTimeStamp) = YEAR(getdate())
AND MONTH(v_StatusEvents.EventTimeStamp) = MONTH(getdate())
AND DAY(v_StatusEvents.EventTimeStamp) = DAY(getdate())
GROUP BY v_StatusEvents.ServiceID
, v_StatusEvents.StatusTypeDescription
, v_StatusEvents.ServiceName
, v_StatusEvents.CategoryName
3 つのカテゴリがあります: (100 - インターネット、101 - アプリケーション、および 102 - ネットワーク)。
各カテゴリにはサービスが含まれています。
例として、CATEGORY Internetet に属する 3 つのサービスがあります: (50 - 内部、51 - 外部、52 - 開発)。
各サービスには常に、現在の日付のステータス レコードが少なくとも 1 つあります。
CURRENT STATUS は、3 つの異なる STATUS TYPES 値のいずれかに設定されます: 1 = 問題なし、2 = 中断、3 = 重大。
今日の各カテゴリの最高の STATUS TYPE を表示したいと思います。
以下は、今日の日付に設定されたサンプル レコードです。
SeID CatID EventTimeStamp SvcID StatTypeID
201 100 11/11/2012 12:01am 52 1
202 100 11/11/2012 12:01am 51 1
203 100 11/11/2012 12:01am 50 1
204 100 11/11/2012 08:00am 51 3
205 100 11/11/2012 10:50am 50 2
206 100 11/11/2012 11:00am 50 1
207 100 11/11/2012 11:25am 52 2
ご覧のとおり、10:50m に内部 Web サイトで中断の問題が発生しましたが、午前 11:00 に解決されました。
外部 Web サイトには、まだ解決されていない重大な問題が進行中です。クエリが値 3 を返すようにしたいのは、これが解決されていないサービスの最高の現在のステータスであるためです。
(すべてのサービスに「問題がない」場合、クエリは値 1 を返すと予想されます)
ありがとう、
クジャンク