0

我正在创建 SQL 报告以从 NetBackup OpsCenter 数据库(MySQL?)查询结果,并且正在学习如何使用 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 回答