0

NetBackup OpsCenter データベース (MySQL?) から結果をクエリするために SQL レポートを作成しています。また、SQL の使用方法を学んでいるので、私の無知を許してください。

以下に作成したレポートは、前日の失敗を示しています (前の 24 時間ではなく、実行するたびに異なります)。

SELECT (GETDATE()-1) AS 'Date', statusCode AS STATUS, COUNT(*) AS COUNT

FROM domain_JobArchive

WHERE DATEDIFF(day, UtcBigIntToNomTime(endTime), GETDATE()) =1
and masterServerId=59

GROUP BY statusCode;

そして、これを変更したかったので、ヘッダーとして使用されている日付を報告します...独自の列ではありません。

現在の出力: Count of errors for yesterday (non-PCI)

Date STATUS COUNT Apr 24, 2013 11:43:10 AM 288 1 Apr 24, 2013 11:43:10 AM 0 6861 Apr 24, 2013 11:43:10 AM 1 52 Apr 24, 2013 11:43:10 AM 6 63 Apr 24, 2013 11:43:10 AM 50 1 Apr 24, 2013 11:43:10 AM 58 2 Apr 24, 2013 11:43:10 AM 191 1 Total 7 Rows , 1 Page(s)

望ましい出力: Count of errors for Apr 24, 2013 (non-PCI)

STATUS COUNT 0 6861 1 52 6 63 50 1 58 2 191 1 288 1 Total 7 Rows , 1 Page(s)

このように、実行するたびに、まったく同じデータが取得されます。

そして、それが昨日の午前 7 時から今日の午前 7 時までだったら、さらに良いでしょう...いつ実行されたかに関係なく。

4

1 に答える 1

0

これはうまくいくはずだと思います。日付時刻から 7 時間を引き、昨日の日付と比較します。SELECT ステートメントから日付を削除するだけです。必要ありません。

SELECT statusCode AS STATUS, COUNT(*) AS COUNT

FROM domain_JobArchive

WHERE DATE(DATE_SUB(UtcBigIntToNomTime(endTime), INTERVAL 7 HOUR)) = DATE_SUB(curdate(), INTERVAL 1 DAY)
and masterServerId=59

GROUP BY statusCode;
于 2013-04-25T19:14:50.900 に答える