我有大約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