在access里合并表,所有表结构都是一样的,怎么做

在access里合并表,所有表结构都是一样的,怎么做,第1张

打开数据库B,新建一个查询,直接编写以下SQL语句(假设数据库A保存在E盘)

INSERT INTO C IN 'E:\Amdb'

SELECT

FROM D;

以上方法经过测试通过,还不明白,可以HI我。

关于相同记录不导入的问题,如果两个表在同一数据库里则很好解决,像你这种两个表在不同数据库里,可能解决起来有很大难度!

当然,你也可以在数据库B里建一个与D表结构完全一样的空表F,按上面的方法将数据库A里的C表的数据全部导入到F表里(也就是把两个表弄到同一数据库里)。接下来,在数据库B里,建立查询,用以下SQL语句就可以(假设表中有一唯一标识的关键字“编号”字段):

INSERT INTO D

SELECT

FROM F

where F编号 not in(select 编号 from D);

题主这个问题不存在简单的回答,需要具体情况具体分析解决。

多表汇总跟单表汇总本质上是一样的,基本方法无非就是使用聚合函数(通常需要配合group by子句一起使用)来检索出汇总信息。多表汇总一般需要使用连接与联合这两种手段将来自不同数据表的数据合并在一起。对于多表连接,我们需要特别注意它的笛卡尔乘积输出规则所导致的记录行数增大效应,否则汇总出来的数字很可能就会不正确!请注意笛卡尔乘积输出规则对于任何类型的表间连接方式的影响作用都是一样的,不论它是内连接、外连接、一对多或者多对多关系等等。

例如A表ID=1的记录有2行,B表ID=1的记录有3行,那么A、B两表基于字段ID连接后,ID=1的记录行数将输出2x3=6行,直接对连接后得到的记录集实施汇总显然就会不正确。

那么SQL多表汇总如何规避"笛卡尔"乘积输出规则的影响呢?一是先对单表实施汇总,然后才进行连接;又或者在确保至少一方表是唯一的情况下实施连接,因为1乘以任何数还是任何数,"笛卡尔"乘积输出规则不会令到连接后的记录集行数增多。

具体的多表汇总方法需要考虑的问题很多,当然不止上述因素,还是那句话需要具体问题具体分析。

Adodc1RecordSource = "select new_table编号,new_table地址,new_table名称,new_table其它 from

(select from a union all

select from b union all

select from c union all

select from d union all

select from e) as new_table

名称 Like " & "'" & text1text & "'"

----补充---

new_table不是新建的表,只是给那括号里的查询起一个别名

要不可以改成

Adodc1RecordSource = "select new_table编号,new_table地址,new_table名称,new_table其它 from

(select from a union all

select from b union all

select from c union all

select from d union all

select from e) as new_table where

名称 Like " & "'" & text1text & "'"

---补充---

少写了个where

以上就是关于在access里合并表,所有表结构都是一样的,怎么做全部的内容,包括:在access里合并表,所有表结构都是一样的,怎么做、怎么对Access多表进行数据汇总、vb SQL多表联合查询问题(Access数据库表)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10178914.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存