如何从出生日期表中调用SQL显示年龄?

时间:2017-04-27 19:41:44

标签: sql ms-access

我想问一下如何从出生日期表中调用显示年龄的SQL?

因为我必须调用SQL来显示退休公司的员工的平均年龄。

enter image description here

enter image description here

enter image description here

我的SQL语句:

Select AVG (age)
From Employee, Career
Where employee.employee_ID=Career.employee_ID
AND Career.Status =Retired

但我没有"年龄表"

2 个答案:

答案 0 :(得分:0)

你正确使用AVG,从那里你只需要计算每个人的年龄。您可以在一个查询中完成所有操作(并且有很多方法,如评论中所述)。这里的年龄数学是根据this question

的答案改编的
SELECT AVG(DATEDIFF(yy, employee.Date_of_Birth, GetDate()) -
        CASE WHEN MONTH(GetDate()) < MONTH(employee.Date_of_Birth) THEN 1
             WHEN MONTH(GetDate()) > MONTH(employee.Date_of_Birth) THEN 0
             WHEN DAY(GetDate()) < DAY(employee.Date_of_Birth) THEN 1
             ELSE 0 END)
FROM Employee
   JOIN Career on employee.employee_ID = Career.employee_ID
      AND Career.Status = 'Retired'

(SQL Server在这里,因为原始问题没有指定。保留它以防万一它)

答案 1 :(得分:0)

这个怎么样:

SELECT
    AVG(DateDiff("yyyy", employee.Date_of_Birth, Date()) + Int(Format(Date(), "mmdd") < Format(employee.Date_of_Birth, "mmdd")) as AverageAge
FROM Employee
JOIN Career on employee.employee_ID = Career.employee_ID
      AND Career.Status = "Retired"

here

无耻地窃取逻辑