工人签到用到的:
数据库里面字段为  工人姓名  签到时间  (先就这两个字段吧)
用签到时间做条件
想要的查询结果就是 当月 每天 签到时间的最大值和最小值
也就是说 想要查询6月的数据
列出的数据为1号到30号每天最大签到时间和最小签到时间
查询出对应的条数应该是 (月份的天数)*2
这个有解吗?

解决方案 »

  1.   


    select 工人姓名 ,max(签到时间),min(签到时间) from t group by 工人姓名 
      

  2.   

    想要查询出对应的条数应该是 (月份的天数)*2的话select 工人姓名 ,max(签到时间) from t group by 工人姓名 union all select 工人姓名 ,min(签到时间) from t group by 工人姓名 
      

  3.   

    数据库里加一列字段记录签到的日期,在上面的sql语句的select和groupby里分别加上该字段,就可以了
      

  4.   

    这个语句只能查询max(签到时间)和工人姓名 吗? 我还想一起查询出这个最大的签到时间 对应的其他的字段怎么办? 
    我在前面select那敲入了字段名 但是报错"试图执行的查询中不包含作为聚合函数一部分的特定表达式'字段名'"
      

  5.   

    group by是分组查询,要与聚合函数搭配使用,例如max(),不然会出现一对多的情况
      

  6.   

    楼主这样说吧,你只给出这样两个字段在查询的时候确实有些难度
    程序设计 最重要的还是设计 
    对于数据表的设计好坏会直接影响你的后期程序处理
    http://www.cnblogs.com/luluping/archive/2009/08/06/1540763.html