如果找不到記錄,是否有方法可以修改此查詢以在成績列中返回'0'?現在,當沒有發現任何東西時,我得到一個空白行。未找到結果時返回'0'
SELECT COALESCE(Score, 0) AS Score, COALESCE(Grade,0) AS Grade, LAST_UPDATE, '' as dummy
FROM (
SELECT (CASE ScanName WHEN '%=APP%' THEN '= Network System' END) AS System,
(sum(CASE severity WHEN 1 THEN 10 WHEN 2 THEN 9 WHEN 3 THEN 6 WHEN 4 THEN 3
END)/COUNT(severity)) AS Score,
(sum(CASE severity WHEN 1 THEN 10 WHEN 2 THEN 9 WHEN 3 THEN 6 WHEN 4 THEN 3
END)/COUNT(severity)) AS Grade, LAST_UPDATE
FROM missing_internal
WHERE ScanName like '%APP%'
and LAST_UPDATE >= SUBDATE((SELECT MAX(LAST_UPDATE) from missing_internal), INTERVAL 1 day)
HAVING System IS NOT NULL
LIMIT 1
UNION ALL
SELECT NULL AS Score, NULL AS Grade, 0 AS LAST_UPDATE, '' as dummy
ORDER BY LAST_UPDATE DESC
) as T2
LIMIT 1;
分數和分數的目的是相同的,因爲我使用單獨的腳本來將分數應用於分數。
爲sum = 0添加一個case? – 2012-07-09 21:30:02
你的意思是你得到了一個系統的行,但在等級沒有價值?或者你的意思是你根本沒有排? – Randy 2012-07-09 21:30:31