CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

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

楼主xc(xc)2002-09-06 09:26:37 在 MS-SQL Server / 基础类 提问

有两个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怎么写?  
  问题点数:100、回复次数:14Top

1 楼trustmeok()回复于 2002-09-06 09:56:07 得分 0

老兄,在不同的库文件中能行吗?我知道假设在VB中用编程实现也得创建3个连接,一条语句行吗?  
  UPTop

2 楼yonghengdizhen(等季节一过,繁花就凋落)回复于 2002-09-06 09:57:05 得分 20

用union直接选取两表记录它会自动消除重复项的.  
  不要用union   all就行了Top

3 楼yonghengdizhen(等季节一过,繁花就凋落)回复于 2002-09-06 09:59:53 得分 0

通过SQL   SERVER的链接服务器操作Top

4 楼xc(xc)回复于 2002-09-06 10:05:01 得分 0

我现在是要对access的mdb文件操作。yonghengdizhen能否给出SQL语,再加100分Top

5 楼xuejinlong(-@判官@-)回复于 2002-09-06 10:28:51 得分 0

三个数据库,一句SQL肯定不行,但是还有办法的。  
  以Delphi5为例,你可以用BatchMove控件,实现你所说的功能很简单,首先以覆盖形势将表1倒入表3,然后以更新方式将表2倒入表3,OK.  
  如果程序要经常执行本操作,当然每次都是更新表3,那么你可以每个表都以更新的方式倒入表3即可。Top

6 楼xc(xc)回复于 2002-09-06 11:21:07 得分 0

我发现  
  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相同的数据没有合并  
  Top

7 楼N_chow(Yukon)回复于 2002-09-06 11:37:07 得分 0

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.名稱;  
  Top

8 楼N_chow(Yukon)回复于 2002-09-06 11:50:11 得分 0

呃~!想想還是有錯誤。  
  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;  
   
   
  Top

9 楼xc(xc)回复于 2002-09-06 12:27:29 得分 0

N_chow能否把上面两个帖子再贴一遍,怎么少了很多字符Top

10 楼N_chow(Yukon)回复于 2002-09-06 12:29:11 得分 0

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;  
   
  Top

11 楼xc(xc)回复于 2002-09-06 12:32:01 得分 0

我举个例子吧  
  现在是要把数据合并  
  例如  
  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  
   
  Top

12 楼N_chow(Yukon)回复于 2002-09-06 12:37:44 得分 80

我上面的例子應該能ok.  
  我已經測試通過。Top

13 楼xc(xc)回复于 2002-09-06 15:57:20 得分 0

N_chow,我怎么总是不能全部显示你的贴子?少了很多字。你是用一个SQL解决的吗?Top

14 楼xc(xc)回复于 2002-09-06 16:01:07 得分 0

我知道答案了!  
  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   nameTop

相关问题

  • 关于ACCESS数据库的SQL语句
  • access和SQL数据库在SQL语句上有什么不同?
  • 请教SQL Server2000和ACCESS数据库SQL语句的异同
  • insert 语句 access数据库
  • 如何用SQL语句打开有密码的ACCESS数据库?
  • 关于access数据库中SQL语句的怪问题!!
  • 求教JSP访问ACCESS数据库的SQL语句错误
  • sql语句+ACCESS数据库日期查询的问题
  • access数据库,不能运行这样的SQL语句
  • Access数据库中插入,修改SQL语句怎么写?

关键词

  • 文件
  • 数据库
  • db
  • 数据
  • access
  • sql
  • ta
  • mdb
  • 數量
  • aagroup

得分解答快速导航

  • 帖主:xc
  • yonghengdizhen
  • N_chow

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo