(select Max(DAYear+DAMonth+DADay+DAHour+DAMinute)    as AA  from T_DataByTen where DataNo = 'A550101'
Group By (DAYear+DAMonth+DADay+DAHour+DAMinute),DataNo);为什么这条“Max”语句,返回的是三条记录???

解决方案 »

  1.   

    group by (DAYear+DAMonth+DADay+DAHour+DAMinute),DataNo楼主有兴趣可以把这两个放到查询的字段里select (DAYear+DAMonth+DADay+DAHour+DAMinute),DataNo,max(...) as AA from ... group by ...然后会发现为什么会有三条,分组的条件,具体看看group by的用法。
      

  2.   

    可能还有秒不同吧,用下面的语句就只返回一条
    (select Max(DAYear+DAMonth+DADay+DAHour+DAMinute) as AA from T_DataByTen where DataNo = 'A550101'
    Group By DataNo);
      

  3.   

    和你的group by有关系,MAX是分组后取每个组的最大值,所以才会有多个值。
      

  4.   


    “group by (DAYear+DAMonth+DADay+DAHour+DAMinute),DataNo”为什么要去掉呢???去掉就好了
      

  5.   

    加上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后也会存在。
      

  6.   


    是的,Max(DAYear+DAMonth+DADay+DAHour+DAMinute),应该按照其它字段分组才对的。
      

  7.   

    select Max(DAYear+DAMonth+DADay+DAHour+DAMinute) as AA from T_DataByTen
    先这样查下试试,看是几条数据