数据库中只有一个‘出生日期’字段,但是我想在DBGrid 中输出的是年龄而非出生日期,请问各位高手该怎么做啊? 我用了两个ADOQuery,两个Datasourse做成一个主从表的模式,但是显示的年龄段统统都是一个值:41。即是第一条纪录的年龄值。请问怎么改啊? 附图: 附程序:procedure TRenshi_jiluTongji.ComboBoxbaobiaoSelect(Sender: TObject); var year1,month1,day1,year2,month2,day2:word; age:integer; begin with ADOQuerybaobiao do begin Close; SQl.Clear; Sql.Add('select 员工编号,姓名,性别,所在部门,'); if ComboBoxbaobiao.Text='按用工性质统计' then Sql.Add('用工性质 from worker_basic_info order by 用工性质'); if ComboBoxbaobiao.Text='按学历统计' then Sql.Add('文化程度 from worker_basic_info order by 文化程度'); if ComboBoxbaobiao.Text='按专业统计' then Sql.Add('所学专业 from worker_basic_info order by 所学专业'); if ComboBoxbaobiao.Text='按年龄段统计' then Sql.Add('出生日期 from worker_basic_info order by 出生日期'); open; end; Query1.Sql.Add('select 员工编号,姓名,性别,所在部门,'); if ComboBoxbaobiao.Text='按年龄段统计' then begin DecodeDate(fMMainForm.DateTimePicker1.Date, Year1, Month1, Day1); DecodeDate(ADOQuerybaobiao.FieldByName('出生日期').AsDateTime, Year2, Month2, Day2); if month1<month2 then age:=year1-year2-1 else age:=year1-year2; with Query1 do begin Close; SQl.Clear; Sql.Add('select 员工编号,姓名,性别,所在部门,:age as 年龄 from worker_basic_info order by 年龄'); Query1.Params.ParamByName('age').Value:=age; end; end; if ComboBoxbaobiao.Text='按用工性质统计' then Query1.Sql.Add('用工性质 from worker_basic_info order by 用工性质'); if ComboBoxbaobiao.Text='按学历统计' then Query1.Sql.Add('文化程度 from worker_basic_info order by 文化程度'); if ComboBoxbaobiao.Text='按专业统计' then Query1.Sql.Add('所学专业 from worker_basic_info order by 所学专业'); showmessage(Query1.Text); Query1.open;