300分求解!!急!急!!(有关数据库统计、临时表存储、字段值自动生成)(100分)

  • 主题发起人 主题发起人 飞鸿
  • 开始时间 开始时间

飞鸿

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库类型ACCESS2000,数据库名称c:/xx.mdb,数据库中的数据表:
1、基本信息表(主表) 2、学历信息表(从表)
库结构:
字段 类型 字段 类型
姓名 TXT 姓名 TXT
性别 TXT 学历类型 TXT
出生年月 TXT 学历名称 TXT
年龄 整数
值:
张三 男 1987.07 张三 第一学历 大专
李四 女 1984.06 张三 现有学历 大学
李四 第一学历 高中
李四 现有学历 大专
要实现的功能:(用DELPHI自带的ADOQUERY、DBCHART组件实现)
1、统计学历信息表的学历结构:
输入要统计的学历类型(两个选择:第一学历、现有学历),
统计各个学历名称(如:第一学历为大学)对应的人数,
以饼状图的形式显示学历类型(如:第一学历)的构成图。

2、统计字段值构成情况:
输入要统计的字段(如:年龄),显示年龄(根据出生年月自动计算)构成饼状图。
我的思路:
1、使用ADOQUERY查询学历信息表中满足条件的记录,统计各个学历名称的记录条数,
建临时库存储,DBCHART中显示临时库中存放的结果。
我是初学者,怎样实现以上功能?
请各位大侠帮帮忙吧!!!300分啊!(分还可以加)
(最好有范例,我的EMAIL: pl_zhs2002@yahoo.com.cn )
 
Select 学历名称,Count(*) From 学历信息表 Where 学历类型='第一学历' Group By 学历名称
 
最好是建立视图解决从这俩张表中
 
to onlyonekgx:
能详细的说明一下吗?你的SQL语句好象行不通。
to wzp31:
视图是怎么一回事?怎么建?
 
Select 学历名称,Count(*) From 学历信息表 Where 学历类型='第一学历' Group By 学历名称
 
onlyonekgx大侠:
我可是初学者,你能详细的说一下怎样运行你的语句,怎样看执行结果吗?
我会给你高分的。
 
建立一个query在SQL属性中输入上面的SQL语句。
 
1,求解年龄的SQL语句,你可以查一下相关的ACCESS200帮助,看看有没有year和getdate函数,
yeart getdate是SQLSERVER中的函数。
select name,year(GetDate())-year(birthday) from table1 group by name
 
to 巡城浪子
你的SQL也通不过,ACCESS中YEAR()函数有,GETDATE()没有。
 
试试用系统日期sysdate()
 
先系统的学一下SQL语句,不会耽误你的。
 
你找一下得到当前日期的函数试试。把getdate()换掉。
 
第一个问题我自己解决了。
大家想想第二个问题吧。解决了就分配分数。
 
可以增加一个计算字段newnl,在CalcFields事件
void __fastcall TForm1::Query3CalcFields(TDataSet *DataSet)
{
TDateTime t;
int n1,n2;
n2=StrToInt(Query3->FieldByName("csny")->AsString.SubString(1,4));
t=Now();
n1=StrToInt(DateTimeToStr(t).SubString(1,4));
Query3newnl->AsInteger=n1-n2;
}
 
虽然不是十分满意,但还是分配分数吧。见着有份,希望大家继续关注我提出的问题。
 
后退
顶部