如果我理解正確的(請描述exacly你想要查詢),您可以通過將INNER JOIN
更改爲LEFT JOIN
來獲得所需內容。
或本:
SELECT
DATE(dia.DTM) AS 'Dia',
SUM(dia.TMP BETWEEN 20 AND 30) AS 'Index'
FROM dados_meteo dia
WHERE dia.POM = 'Alcobaca'
GROUP BY DATE(dia.DTM)
什麼上面的查詢實際上做的是這樣的:
SELECT
DATE(dia.DTM) AS 'Dia',
COUNT(CASE WHEN dia.TMP BETWEEN 20 AND 30
THEN 'yes'
ELSE NULL
END)
AS 'Index'
FROM dados_meteo dia
WHERE dia.POM = 'Alcobaca'
GROUP BY DATE(dia.DTM)
的意見後,這裏有一個輕微的修改:
SELECT
DATE(dia.DTM) AS 'Dia',
CASE WHEN SUM(dia.TMP BETWEEN 20 AND 30) >= 24
THEN 20
ELSE -10
END AS 'Index'
FROM dados_meteo dia
WHERE dia.POM = 'Alcobaca'
GROUP BY DATE(dia.DTM)
你爲什麼加入dados_meteo到自己? – Olaf 2011-06-11 16:53:57
我必須保證,即使當天只有溫度波動20,我有一個計數= 0 – Hugo 2011-06-11 16:59:25