全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1245
推到 Plurk!
推到 Facebook!

如何創建一個虛擬的資料表,把兩個資料表合併,去除重複的欄位?

尚未結案
AutumnErin
一般會員


發表:14
回覆:14
積分:10
註冊:2004-07-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-30 18:10:24 IP:220.228.xxx.xxx 未訂閱
現在有兩個類似的資料表除了部分的欄位名稱不同外其餘欄位名稱型態都相同。 希望能夠創建一個虛擬的資料表,把兩個資料表合併,把重複的欄位去除。 A表 A.ANo, A.AName, A.Money, A.City B表 B.BNo, B.BName, B.Money, B.City OrderT.OrderNo=A.OrderNo OrderT.OrderNo=B.OrderNo 其中A.OrderNo != B.OrderNo 合併後能有 C.ANo, C.ANamoe, C.BNo, C.BName, C.Money, C.City C.ANo, C.ANamoe, C.BNo, C.BName, C.Money, C.City Null Null 003 8888 99999 KAO 004 99999 Null Null 88888 TAI ↑這是虛擬c表出現的結果 利用JOIN的方式都會使得欄位重複!目標就是把重複的欄位拿掉,合併。 不知哪位大大能夠幫我解決這個問題? 小弟謝先!
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-31 10:03:48 IP:210.65.xxx.xxx 未訂閱
Hi AutumnErin,    試試以下 SQL Command(我猜的啦,不太清楚你的真正需要):
SELECT ANO,ANAME,NULL BNO,NULL BNAME,MONEY,CITY FROM A WHERE A.ANO NOT IN (SELECT BNO FROM B)
UNION ALL
SELECT NULL ANO,NULL ANAME,BNO,BNAME,MONEY,CITY FROM B WHERE B.BNO NOT IN (SELECT ANO FROM A)    or    SELECT ANO,ANAME,NULL BNO,NULL BNAME,MONEY,CITY FROM A WHERE NOT EXISTS (SELECT 'EXTST IN TABLE B' FROM B WHERE B.BNO = A.ANO)
UNION ALL
SELECT NULL ANO,NULL ANAME,BNO,BNAME,MONEY,CITY FROM B WHERE NOT EXISTS (SELECT 'EXTST IN TABLE A' FROM A WHERE A.ANO = B.BNO)
若不是你要的,請告知你的 DataBase 為何?最好再提供更詳細的說明,如 Table A,B 內的資料及最後結果並稍微敘述一下 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
AutumnErin
一般會員


發表:14
回覆:14
積分:10
註冊:2004-07-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-31 10:44:16 IP:220.228.xxx.xxx 未訂閱
呵呵! 感謝Fishman大大的回覆 我發現我剛好只需 SELECT ANO,ANAME,NULL BNO,NULL BNAME,MONEY,CITY FROM A UNION ALL SELECT NULL ANO,NULL ANAME,BNO,BNAME,MONEY,CITY FROM B 這樣子就可以了 因為ANo跟BNo是不會相同的 我用的資料庫是MSSQL 不把這兩個資料表合併查詢使用的話欄位大概會爆出近百個出來 感謝大大的指教
系統時間:2024-05-05 22:11:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!