在活动日期使用年龄更新年龄类别

时间:2014-06-16 23:04:47

标签: sql sql-update datediff

我尝试使用用户的年龄类别更新我的比赛结果表,该年龄类别是通过将年龄和性别与另一个表中的年龄范围进行比较计算得出的,就像这样......

update race_results.race_category = category.categoryname
where age at time of event
is < category.agemin 
and age at time of event > category.agemax 
and category.gender = user.gender

select datediff (yy, raceresults.race_date, user.dob)

需要更新约4500条记录

但我无法将事件发生时的年龄变成sql。

user table 
user.id, user.dob, user.gender

raceresults table
raceresults.id, raceresults.race_date, race_results.race_category

category table
agemin, agemax, gender, categoryname

感谢。

1 个答案:

答案 0 :(得分:0)

我认为有一些查询错误。尝试使用此查询: -

UPDATE race_results
SET race_category = (SELECT categoryname FROM  category)
WHERE datediff (yy, raceresults.race_date, user.dob) < category.agemin 
AND datediff (yy, raceresults.race_date, user.dob) > category.agemax 
AND category.gender = user.gender