数据表名:quotations
字段:id,quotation_no,created_at,updated_at,stage数据为:
       id quotation_no  created_at      updated_at        stage
       1 | MAX001_001 | 2009-03-21 | 2009-03-21 11:14:48 | 135
       2 | MAX001_001 | 2009-03-21 | 2009-03-21 11:16:08 | 137
       3 | MAX001_001 | 2009-03-24 | 2009-03-21 12:21:10 | 137问题1:格式化同一张quotation_no并且同一天的created_at,查出最新的一条updated_at.
问题2:格式化同一张quotation_no并且quotation_no只能对应一个stage,就是不能有在一张quotation_no里有两个同样的stage.并且是要查找最新updated_at.
问题3:格式化同一张quotation_no并且是查找最新created_at.本人错误做法如下:供以参考,莫见笑:
  @list_id = ""
  @all_id = ""
   sql = ""
   sql = "select id from quotations group by quotation_no,created_at  having  max(updated_at)"
  @all_id = Quotation.find_by_sql [sql]
  
    for i in 0..@all_id.length - 1
     if i != @all_id.length-1
          @list_id += "'" + @all_id[i]['id'] + "'" + ","
        else
          @list_id += "'" + @all_id[i]['id'] + "'"
      end 
    end
      unless @list_id.blank?
          @list_id
      else
          @list_id = "''"
    end  
    sql = ""
   sql = "select id from quotations where id in (#{@list_id}) group by quotation_no,stage having  max(updated_at)"
  @all_id = Quotation.find_by_sql [sql] 
 @list_id = ""
  for i in 0..@all_id.length - 1
     if i != @all_id.length-1
          @list_id += "'" + @all_id[i]['id'] + "'" + ","
        else
          @list_id += "'" + @all_id[i]['id'] + "'"
      end 
  end
      unless @list_id.blank?
        @list_id
      else
        @list_id = "''" 
      end  
 sql = "" 
 @quo_id = ""
      sql = "select id from quotations  where id in (#{@list_id})  group by quotation_no having MAX(created_at)"
    @ok_id = Quotation.find_by_sql [sql] 
    for i in 0..@ok_id.length - 1
      if  i != @ok_id.length - 1
        @quo_id += "'" + @ok_id[i]["id"] + "'" + ","
      else
        @quo_id += "'" + @ok_id[i]["id"] + "'"
      end
    end
     unless @quo_id.blank?
       return @quo_id 
      else
       return @quo_id = "''" 
      end  
  end