首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb+access归并字段

2013-01-04 
vb+access合并字段姓名部门工号(表A)小明生产部123小红技术部234小明销售部456姓名部门打卡时间(表B)小明

vb+access合并字段
姓名         部门        工号       (表A)
小明         生产部       123
小红         技术部       234
小明         销售部       456

姓名         部门          打卡时间       (表B)
小明         生产部        2012-02-14  10:00:00
小明         生产部        2012-02-14  12:01:23
小明         生产部        2012-02-15  09:01:22  
小红         技术部        2012-02-14  09:00:00
小红         技术部        2012-02-14  14:23:21
小明         销售部        2012-02-14  08:53:22
小明         销售部        2012-02-15  13:52:21

现在我想用VB在程序中实现如下效果:
工号         姓名          部门       打卡日期          打卡时间
123          小明         生产部      2012-02-14        10:00:00   12:01:23
123          小明         生产部      2012-02-15        09:01:22  
234          小红         技术部      2012-02-14        09:00:00   14:23:21
456          小明         销售部      2012-02-14        08:53:22
456          小明         销售部      2012-02-15        13:52:21


[解决办法]
Select top 3 * from class order by id desc 表示查询前3条的数据并且按降来排
select distinct 年龄 from class  去除重复行的查询
select top 2 * from class order by newid() 表示随便查询2行数据
select * from class where 年龄=20 or 年龄=19 and 性别='男' 表示先查询年龄等于19 并且是男的 在查询所有年龄等于20的人  先执行AND查询 再执行OR
select * from class where id not in (select id from class1) 表示查询表一中在表2中没有的数据
select * from class where id between 1 and 5 表示查询1到5的数据
select * from class where id not between 1 and 5 表示查询不是1到5的数据


select * from class where 姓名like '刘%' 表示查询刘开头的人
select * from class where 姓名like '%丹%'查询包含丹的人
select * from class where 姓名like '[刘丹]%'查询以刘或者以丹开头的数据
select * from class where 姓名like '[%刘丹]%'查询包含丹或者刘的数据
select * from class where 年龄like '[^1-2]%'查询数据不是以1到2之间开头的
select * from class where 年龄like '[^刘陈]%' 查询不是以刘或者陈开头的数据
select * from class where 工作地址is null 表示查询工作地址不是空值的数据
select * from class where 工作地址is not null 查询不是空植的数据
select * from class where id <> all(select id from class1)表示查询表2在表一中没有的ID数据
select * from class where id = any(select id from class1) 查询表一中和表2相同的ID
elect * from class where (性别not in ('男'))and (not (年龄between 18 and 21)) 
not语句的查询 在条件语句前面加上NOT 
select top 3 * from  class order by id 前面最三个数据
use liudan
select top 3 * from  class order by id desc 最后三个的数据
select ltrim(rtrim(姓名)) from class 里面函数RTRIM代表删除结尾空格数据 外面函数 ltrim 删除前面空格的数据
select 姓名+',' as 姓名,lower(gege) as gege from class    给姓名的每条数据加上 ,; 把gege 列转换为小写
select 姓名+',' as 姓名,upper(gege) as gege from class 后面函数把数据全部转换为大写
select * from class where month(日期)=9 and year(日期)=1993 and day(日期)=9
分别是三个函数 第一个是对指定的日期 月 ,年,日
select 年龄-id as a from class 表示用每一行的数据用年龄-id得到的数据+ - * / 都可以用
select sum(年龄) as a from class  求和
select * from class where 年龄>(select avg(年龄) from class)  求年龄大于平均值的数据
select * from class where 年龄= (select max(年龄) from class) 求年龄最大的、
select * from class where 年龄= (select min(年龄) from class) 年龄最小的人
select count(*) from class 表中数据总条数
select count(年龄) from class 查询年龄不为空的
select sum(年龄) from class where 性别='男' 得到性别为男的的总年龄数
select 年龄,count(*) from class group by 年龄      表示对年龄进行汇总,就是说 对相同年龄的人人数进行汇总 
select 年龄,count(*) from class group by 年龄having 年龄>20 对年龄大于20的才进行汇总
select 年龄,count(*) from class group by 年龄having (年龄 in (20))  年龄在20范围内的汇总
select * from class union select * from class3 将两个表连接到一起来 删除重复的行
select * from class union all select * from class3 保留重复的行
select id from class intersect 
select id from class1    两个表相同的数据 这里因为没有两个相同的表所以只查询ID相同的
select * from class except select * from class3 两个相同的表的不相同的数据
insert into class3 (姓名)values ('dadad')  表示在表中的姓名列插入一个数据  只所以要写是哪个列的数据 是因为不用我插入id了 我门一般设置id是自动生成的 所以再这里要注明;;
update class3 set 工作地址='湖北' where id=2 对ID=2的行 的工作地址的列进行修改
update class3 set 工作地址='湖北' 对所有工作地址的列进行修改
delete top(1) class 删除表中前1条的数据
delete from class3 where id=2删除ID=2的行


select top 3 * from class order by newid() 随机查询3条数据
select * from class order by 名字 collate chinese_prc_cs_as  按音序查询
[解决办法]
123 小明 生产部 2012-02-14 10:00:00 12:01:23
这个格式,按照你目前的数据库设置,sq了做不到
但可以做到这样:
123 小明 生产部 2012-02-14 10:00:00 
123 小明 生产部 2012-02-14 12:01:23

sql="select 工号,部门,打卡日期,打卡时刻 from 表a inner join ((select 姓名,date(打卡时间) as 打卡日期,time(打卡时间) as 打卡时刻 FROM 表B ) as A )on 表a.姓名= a.姓名"

[解决办法]

引用:
引用:
123 小明 生产部 2012-02-14 10:00:00 12:01:23
这个格式,按照你目前的数据库设置,sq了做不到
但可以做到这样:
123 小明 生产部 2012-02-14 10:00:00
123 小明 生产部 2012-02-14 12:01:23

sql="select 工号,部门,打卡日期,打卡时刻 from 表a in……


排序后,用代码处理

热点排行