数据表名: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
字段: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
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货