我使用以下select语句提取数据行并将它们显示在数据网格中
SELECT
a.tmc, w.date, a.surface_temperature,
a.air_temperature, a.material_rate,
a.time, w.intensity
FROM application a
LEFT OUTER JOIN weather w
ON a.DATE = w.DATE AND a.tmc = w.tmc
WHERE w.DATE = '" & calendar1.SelectedDate & "'
AND w.event= '" & weatherType.SelectedItem.Value & "'
AND w.City = '" & sender.CssClass & "'这有时会显示5,000行不同的数据,其中一列是时间。它们的时间大约是6:08,6:09,等等。有没有一种方法可以在6-6:59之间的所有时间只显示一行?
这些行应该如下所示
Time Temp
1:00 27
2:00 31
3:00 32谢谢!
发布于 2011-09-16 21:59:19
神奇的小表情
CONVERT(DATE_FORMAT(w.DATE,'%Y-%m-%d-%H:00:00'),DATETIME)将在分钟和秒归零的情况下返回w.DATE。
例如,
SELECT CONVERT(DATE_FORMAT('1941-12-07 08:45:20',
'%Y-%m-%d-%H:00:00'
),DATETIME)返回1941-12-07 08:00:00。
无需尝试弄清楚查询的所有逻辑(还有其他我不理解的东西),这里有一种方法可以获得每小时的天气观测摘要。
SELECT station,
CONVERT(DATE_FORMAT(observation_time,'%Y-%m-%d-%H:00:00'),DATETIME) observation_hour,
MIN(temperature) min_temp,
MAX(temperature) max_temp,
AVG(temperature) avg_temp
FROM observation
GROUP BY station, CONVERT(DATE_FORMAT(observation_time,'%Y-%m-%d-%H:00:00'),DATETIME)
ORDER BY station, CONVERT(DATE_FORMAT(observation_time,'%Y-%m-%d-%H:00:00'),DATETIME)GROUP BY表达式将其转换为汇总查询,按小时汇总。
注意。您的DATE列似乎实际上包含DATETIME数据类型。a.DATE=w.DATE上的连接要求application和weather表行的那些列中的日期和时间完全相同。这是真的吗?将DATETIME列命名为DATE可能会误导处理此数据库的下一位程序员。
https://stackoverflow.com/questions/7445339
复制相似问题