【发布时间】:2012-09-25 18:15:06
【问题描述】:
我在 rails 2 工作,我想执行 Query
PunchingInformation.all(
:select => "users.id, login, firstname, lastname,
sec_to_time(avg(time_to_sec(punching_informations.punch_in_time))) as 'avg_pit',
sec_to_time(avg(time_to_sec(punching_informations.punch_out_time))) as 'avg_pot'",
:joins => :user,
:group => "users.id",
:conditions => {
"punching_informations.date between '#{start_date}' and '#{end_date}'",
["punching_informations.user_id IN (?)", employees.map { |v| v.to_i } ]
}
)
但它总是返回类似
的错误Mysql::Error: Unknown column 'punching_informations.date between '2012-09-01' and '2012-09-25'' in 'where clause': SELECT users.id,login, firstname,lastname, sec_to_time( avg(time_to_sec(punching_informations.punch_in_time))) 作为'avg_pit', sec_to_time(avg(time_to_sec(punching_informations.punch_out_time))) as 'avg_pot' FROM
punching_informationsINNER JOINusersONusers.id =punching_informations.user_id AND (users.type= '用户或users.type= 'AnonymousUser' ) WHERE (punching_informations.date between '2012-09-01' and '2012-09-25'IN ('punching_informations.user_id IN (?)','--- \n- 28\n- 90\n') ) GROUP BY users.id
需要你的帮助。
【问题讨论】:
-
你的
punching_informations表中有date列吗? -
punching_informations.date between '2012-09-01' and '2012-09-25' IN ...绝对是错误的 SQL。似乎条件定义不正确。 -
您的条件实际上并不是一个哈希,虽然是在 {} 中。您是从实际项目中复制的,还是手动编辑的?
标签: ruby-on-rails ruby