为什么这条“Max”语句,返回的是三条记录
(select Max(DAYear+DAMonth+DADay+DAHour+DAMinute) as AA from T_DataByTen where DataNo = 'A550101'
Group By (DAYear+DAMonth+DADay+DAHour+DAMinute),DataNo);
为什么这条“Max”语句,返回的是三条记录???
------解决方案--------------------group by (DAYear+DAMonth+DADay+DAHour+DAMinute),DataNo
楼主有兴趣可以把这两个放到查询的字段里
select (DAYear+DAMonth+DADay+DAHour+DAMinute),DataNo,max(...) as AA from ... group by ...
然后会发现为什么会有三条,分组的条件,具体看看group by的用法。
------解决方案--------------------可能还有秒不同吧,用下面的语句就只返回一条
(select Max(DAYear+DAMonth+DADay+DAHour+DAMinute) as AA from T_DataByTen where DataNo = 'A550101'
Group By DataNo);
------解决方案--------------------和你的group by有关系,MAX是分组后取每个组的最大值,所以才会有多个值。
------解决方案--------------------加上group by表示你是按这两个字段来做分组
1、既然找的是max(DAYear+DAMonth+DADay+DAHour+DAMinute),为何又要按 DAYear+DAMonth+DADay+DAHour+DAMinute 分组,这样相当于只找 distinct DAYear+DAMonth+DADay+DAHour+DAMinute 。
2、DataNo 貌似在这个查询里没有具体的意义,楼主写在group by后边不是显得多余,如果它是有用的,那么应该在select后也会存在。
------解决方案--------------------的确,你只是求最大的日期时间就不需要分组了。。。
------解决方案--------------------select Max(DAYear+DAMonth+DADay+DAHour+DAMinute) as AA from T_DataByTen
先这样查下试试,看是几条数据