access数据库SQL问题,请给出SQL语句

有两个access的MDB文件(f1.mdb f2.mdb),每个文件里都有一个表为ta,ta有两个字段为"名称","数量",现在要合并这两个MDB文件的数据到第三个文件(f3.mdb该文件已经有一个空的表ta),第三个文件数据结构和这两个MDB文件一致。合并时如果名称相同则数量相加,我不想一条记录一条记录的处理。我在网上看到在access不同数据库中的表进行链接(in)介绍,我想用链接(in)类似下面代码解决问题
insert into ta(名称,数量) select * from 文件f1的ta,in 文件f2的ta group by 名称
请问这个SQL怎么写?
[306 byte] By [xc-xc] at [2008-6-10]
# 1
老兄,在不同的库文件中能行吗?我知道假设在VB中用编程实现也得创建3个连接,一条语句行吗?
UP
trustmeok at 2007-10-20 > top of Msdn China Tech,MS-SQL Server,基础类...
# 2
用union直接选取两表记录它会自动消除重复项的.
不要用union all就行了
# 3
通过SQL SERVER的链接服务器操作
# 4
我现在是要对access的mdb文件操作。yonghengdizhen能否给出SQL语,再加100分
xc-xc at 2007-10-20 > top of Msdn China Tech,MS-SQL Server,基础类...
# 5
三个数据库,一句SQL肯定不行,但是还有办法的。
以Delphi5为例,你可以用BatchMove控件,实现你所说的功能很简单,首先以覆盖形势将表1倒入表3,然后以更新方式将表2倒入表3,OK.
如果程序要经常执行本操作,当然每次都是更新表3,那么你可以每个表都以更新的方式倒入表3即可。
xuejinlong@判官@- at 2007-10-20 > top of Msdn China Tech,MS-SQL Server,基础类...
# 6
我发现
insert into aa(name,count)
(SELECT [name], [count]
FROM [C:\My Documents\db1.mdb].aa
GROUP BY [name],[count]
union
SELECT [name], [count]
FROM [C:\My Documents\db2.mdb].aa
GROUP BY [name],[count])
在access下调试通不过,但是
insert into aa(name,count)
SELECT [name], [count]
FROM [C:\My Documents\db1.mdb].aa
GROUP BY [name],[count]
就可以,不过name相同的数据没有合并
xc-xc at 2007-10-20 > top of Msdn China Tech,MS-SQL Server,基础类...
# 7
hi xc(xc) ,
根據你的提示,寫了下面這個語句,試試看。:)

SELECT a.名稱, Sum(NZ(a.數量)+NZ(b.數量)) AS Expr1
FROM [C:\db1.mdb].ta AS a LEFT JOIN [C:\db2.mdb].ta AS b ON a.名稱 = b.名稱
GROUP BY a.名稱;
N_chow-Yukon at 2007-10-20 > top of Msdn China Tech,MS-SQL Server,基础类...
# 8
呃~!想想還是有錯誤。
Sorry,分兩步來做。

1)、建一個查詢,并命名為tmp

SELECT tmp.名稱, Sum(NZ(數量)) AS b數量
FROM [SELECT a.名稱,數量
FROM [C:\db1.mdb].ta AS a
union all
SELECT b.名稱,數量
FROM [C:\db2.mdb].ta AS b
]. AS tmp
GROUP BY tmp.名稱;

2)、新增資料:

INSERT INTO ta(名稱, 數量)
SELECT 名稱,b數量
FROM ab;

N_chow-Yukon at 2007-10-20 > top of Msdn China Tech,MS-SQL Server,基础类...
# 9
N_chow能否把上面两个帖子再贴一遍,怎么少了很多字符
xc-xc at 2007-10-20 > top of Msdn China Tech,MS-SQL Server,基础类...
# 10
1)、建一個查詢,并命名為tmp

SELECT tmp.名稱, Sum(NZ(數量)) AS b數量
FROM [SELECT a.名稱,數量
FROM [C:\db1.mdb].ta AS a
union all
SELECT b.名稱,數量
FROM [C:\db2.mdb].ta AS b
]. AS tmp
GROUP BY tmp.名稱;

2)、新增資料:

INSERT INTO ta(名稱, 數量)
SELECT 名稱,b數量
FROM ab;

N_chow-Yukon at 2007-10-20 > top of Msdn China Tech,MS-SQL Server,基础类...
# 11
我举个例子吧
现在是要把数据合并
例如
f1.mdb
name count
a 10
b 20
f2.mdb
name count
a 20
c 15
我希望f3.mdb结果
name count
a 30
b 20
c 15

xc-xc at 2007-10-20 > top of Msdn China Tech,MS-SQL Server,基础类...
# 12
我上面的例子應該能ok.
我已經測試通過。
N_chow-Yukon at 2007-10-20 > top of Msdn China Tech,MS-SQL Server,基础类...
# 13
N_chow,我怎么总是不能全部显示你的贴子?少了很多字。你是用一个SQL解决的吗?
xc-xc at 2007-10-20 > top of Msdn China Tech,MS-SQL Server,基础类...
# 14
我知道答案了!
insert into aa(name,count)
select name,sum(count)
from(
SELECT name, count
FROM [C:\My Documents\db1.mdb].aa
UNION ALL SELECT [name], [count]
FROM [C:\My Documents\db2.mdb].aa)
group by name
xc-xc at 2007-10-20 > top of Msdn China Tech,MS-SQL Server,基础类...