我正在创建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点,它会更好......无论何时执行。
答案 0 :(得分: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;