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]
我发现
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相同的数据没有合并
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.名稱;
呃~!想想還是有錯誤。
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;
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;
我知道答案了!
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