我有大约20个包含数据的excel文件。所有的表都有相同的列,如ID名称年龄位置等.....每个文件都有不同的数据,但我不知道一个文件中的数据是否在另一个文件中再次重复。所以我想加入所有的文件,并且结果st应该包含不同的值。请尽快帮我解决这个问题。我希望结果集存储在访问数据库中。如何加入两个或多个表格和具有所有不同值的结果集
回答
在SQL中,可以使用JOIN或NATURAL JOIN来连接表。我会研究NATURAL JOIN,因为你说所有的表都有相同的值。
之后,您可以使用DISTINCT获取不同的值。
虽然我不确定这是不是你想要的东西:你的问题是关于excel的问题,但是你用SQL标记了它。
我会推荐链接在acces床单,或导入床单作为tabels。
然后从那里尝试使用DISTINCT确定从表格/工作表中选择需要的键,并且只根据需要选择记录。
如果你可以使用一个查询所有的表,你可以使用一个union
来获得不同的行:
select id, name, age, location from Table1
union
select id, name, age, location from Table2
union
select id, name, age, location from Table3
union
...
您可以直接从结果插入记录:
insert into ResultTable
select id, name, age, location from Table1
union
....
如果您一次只能从一个表格中进行选择,则可以跳过插入已在表格中的行:
insert into ResultTable
select t.id, t.name, t.age, t.location from Table1 as t
left join ResultTable as r on r.id = t.id
where r.id is null
(假设ID是一个独特的字段,识别记录。)
嗨,大家好感谢您的支持,但是这是我有 问题,我有20个Excel文件。每个文件都包含不同的数据,所以如果我们在表上做任何操作,就没有问题了。但是,如果我尝试做工会与其他表则显示出这样的 ID名称的位置等等等等.... 1 XYZ BHU 1个ABC HUD 2 BHK – abhi 2009-11-09 22:16:28
感谢您的答复,但我在寻找什么是我想要来自两个文件的所有数据都没有重复。我的意思是 ID名称LOC 1高保真 2 B胡 3 c。通过 ID名称LOC 1 d XY 2 B胡 3小时BJ 我想 ID名称LOC 1一喜 2 b hu 3 c作者: 4天xy 5小时bj – abhi 2009-11-09 22:38:53
如果我理解你是正确的(在多次阅读你的评论之后),你应该完全省略Excel文件中的id,以便记录在剩下的数据,并在Access数据库中有一个计数器字段,用于创建新的id:s当你添加它们时。 – Guffa 2009-11-10 00:00:07
看来你想要的唯一一组数据是这样的:
SELECT T1.name, T1.loc
FROM [Excel 8.0;HDR=YES;IMEX=1;DATABASE=C:\db1.xls;
].[Sheet1$] AS T1
UNION
SELECT T1.name, T1.loc
FROM [Excel 8.0;HDR=YES;IMEX=1;DATABASE=C:\db2.xls;
].[Sheet1$] AS T1
...但你那么想任意应用整数序列为id
(而不是使用Excel表中的id值)。
由于Access数据库引擎不支持通用表表达式和Excel不支持VIEW
S,你将不得不重复UNION
查询作为派生表(希望优化器将识别重复?)例如使用相关子查询来获得行号:
SELECT (
SELECT COUNT(*) + 1
FROM (
SELECT T1.name, T1.loc
FROM [Excel 8.0;HDR=YES;IMEX=1;DATABASE=C:\db1.xls;
].[Sheet1$] AS T1
UNION
SELECT T1.name, T1.loc
FROM [Excel 8.0;HDR=YES;IMEX=1;DATABASE=C:\db2.xls;
].[Sheet1$] AS T1
) AS DT1
WHERE DT1.name < DT2.name
) AS id,
DT2.name, DT2.loc
FROM (
SELECT T2.name, T2.loc
FROM [Excel 8.0;HDR=YES;IMEX=1;DATABASE=C:\db1.xls;
].[Sheet1$] AS T2
UNION
SELECT T2.name, T2.loc
FROM [Excel 8.0;HDR=YES;IMEX=1;DATABASE=C:\db2.xls;
].[Sheet1$] AS T2
) AS DT2;
注:
我想要的结果集存储在 访问数据库
那么也许你应该迁移Excel数据放入Access数据库中的临时表中,并从那里进行数据清理。至少你可以把派生表放入一个VIEW
:)
我认为这个答案是有误导性的,这个问题意味着WHOLE行可能在多个文件中 - 包括ID,为什么他需要申请新的身份证号码! – HarveyFrench 2015-09-03 10:15:36
联接是通过匹配相应列中的值来组合两个表。结果,你将得到一个由第一个表格组成的合并表格,再加上从第二个表格复制的匹配行。您可以使用DIGBD加载项为Excel
- 1. 加入两个表,具有多个值
- 2. 结合两个表的结果具有不同结构
- 3. 加入到表中有两个或多个记录具有相同的外键
- 4. 加入3个表格,不输出第三个表格的所有结果?
- 5. 如何加入列中具有多个值的表格?
- 6. 加入具有相同结构但数据不同的多个表格
- 7. 如何同步两个具有不同结构的MySQL表?
- 8. 具有多个结果集的JPA实体具有不同的列
- 9. 结合来自不同表格的两个结果集
- 10. 如何加入2个表,但有相同的结果算表
- 11. 结合两个具有相同结构的表格
- 12. 结合具有相同列和不同值的两个表的最佳方式
- 13. 左加入同一个表,但具有不同的值?
- 14. 加入MySQL中的两个表具有多个值,一个在其他表
- 15. 加入两个表,其中一个表具有特定的值
- 16. 加入两个具有相同ID和合并ID列的表
- 17. 两个IDE有不同的结果
- 18. 加入两个表,所有的行中有共同的价值观连接表
- 19. 具有不同值的两个PickerView
- 20. 如何验证具有不同值的多个输入
- 21. 加入两个表并生成具有相同值的表在两个不同的行
- 22. 如何附加到具有不同名称的多个输入?
- 23. 如何添加具有不同名称的多个输入框
- 24. 加入两个表具有一个共同的关键在MySQL
- 25. 正在加入多个表格以获得所需的结果
- 26. 与两个不同的表具有相同的结构
- 27. 两个不同的具有相同结构的命名表(GreenDAO)
- 28. 具有多个值和多个所有者的Django字段
- 29. 如何发布多个具有相同名称和不同值的输入
- 30. 加入多个结果表
感谢您的答复,但我在看的是我想要从两个文件中的所有数据不重复。我的意思是 ID名称LOC 1高保真 2 B胡 3 c。通过 ID名称LOC 1 d XY 2 B胡 3小时BJ 我想 ID名称LOC 1一喜 2 b胡 3 c。通过 4 d XY 5小时BJ – abhi 2009-11-09 22:21:21