首頁 | 關於知識網 | 會員規範 | 知識地圖| 本站連結 | JACKSOFT | 加入會員 |
電腦稽核 >> 電腦稽核軟體討論區 >>[求助]ACL-編輯資料表格式當連接兩個資料表的問題
[求助]ACL-編輯資料表格式當連接兩個資料表的問題

我試著連結兩個資料表。兩個表的欄位名稱長度不同。

我使用編輯資料表格式(Table layout),修改在資料表Table #1中的"Client1"欄位長度與資料表Table #2中"Client"欄位的最大字串符號性質相同。

問題1:因增加資料表Table #1的"Client1"欄位字串長度,包括從現在相鄰的“CLIENT1”欄位中的字元。

問題2:在資料表Table #2中"Client"欄位不再是ASCII碼,因為我做了ALLTRIM和SPLIT的函數指令,使"Client"欄位與資料表Table #1中的"Client"欄位順序相同(名字和姓氏)。

此外,當聯結這兩個資料表,我想聯結Client1欄位和Client欄位的紀錄。

我真的已經非常混亂,不知道該如何呈現我所想要的結果。
可以請你們幫忙我嗎?謝謝!

2
 
 

   
相關標籤
   
回文 #1
回覆會員暱稱:小蔡
點數:2860
等級:大師

榮譽勳章:大師
發文篇數:126
回文時間:2012-02-13 11:27:30

非常謝謝你。
   
回文 #2
回覆會員暱稱:
點數:
等級:初學者

榮譽勳章:初學者
發文篇數:36
回文時間:2012-02-13 11:19:46

alltrim(exclude(split(ClientName,"*",2)" ")) = "KIMBERLYJ"
   
回文 #3
回覆會員暱稱:小蔡
點數:2860
等級:大師

榮譽勳章:大師
發文篇數:126
回文時間:2012-02-13 11:07:00

有沒有消除KIMBERLY與 J 之間的方法嗎?
   
回文 #4
回覆會員暱稱:辣味的
點數:3050
等級:知識長

榮譽勳章:知識長
發文篇數:135
回文時間:2012-02-13 10:53:31

好吧!讓我們看看。對於 ClientName = "VAUGHN*KIMBERLY J"1. alltrim(split(ClientName,"*",2)) = "KIMBERLY J"2. alltrim(split(ClientName," ",3)) = ""3. alltrim(split(ClientName,"*",1)) = "VAUGHN" '1'和 '3' 中的語句對應用星號 (*) 分隔的字串。 在目前的情況,這意味著只有兩個元素,"VAUGHN" 和 "KIMBERLY J"。 "2"中的語句將對應用空格分隔的字串。 對於目前的情況,這意味著僅只有兩個元素,"VAUGHN*KIMBERLY" 和"J"。 由於您試圖存取第三個根本不存在的元素,從 '2' 串聯中你得到了什麼。
   
回文 #5
回覆會員暱稱:小蔡
點數:2860
等級:大師

榮譽勳章:大師
發文篇數:126
回文時間:2012-02-13 10:50:47

感謝您的説明! 我有個問題希望有人可以幫助我給我第二個方案。有紀錄的LASTNAME*FIRSTNAME MIDDLENAME/MIDDLEINITIAL。(在FIRSTNAME and MIDDLENAME/MIDDLEINITIAL之間的空白)。 當我執行以下操作: DEFINE FIELD Client COMPUTED ALLTRIM(SPLIT(ClientName,"*",2))+ALLTRIM(SPLIT(ClientName," ", 3))+ALLTRIM(SPLIT(ClientName,"*",1))I get FIRSTNAME (1 space)MIDDLENAME/MIDDLEINITIALLASTNAME.For example, KIMBERLY JVAUGHN instead of KIMBERLYJVAUGHN.
   
回文 #6
回覆會員暱稱:
點數:
等級:初學者

榮譽勳章:初學者
發文篇數:36
回文時間:2012-02-13 10:49:26

首先,我要說的是我喜歡辣味的方法。你說:使用編輯資料表格式(Table layout),修改在資料表Table #1中的"Client1"欄位長度與資料表Table #2中"Client"欄位的最大字串符號性質相同。 問題1:因增加資料表Table #1的"Client1"欄位字串長度,包括從現在相鄰的“CLIENT1”欄位中的字元。 如果你現在明白了,你不能只編輯資料欄位的長度,因為可能會搶下ㄧ欄的資料。然而,你可以使用運算式添加空白到該欄位。 例如:if Client1 was 17 in table #1 and 22 in table #2, you could have Client1_long=Client1+blanks(5) in table #1. 或者,你可以看到,如果在資料表Table #2的CLIENT2欄位中所載的-Last(Client2,5) 分類 - 的額外五個字元中的任何內容,如果結果顯示所有Client2數值有5個空白在末端-你可以編輯資料表table #2的格式和減少Client2欄位長17,然後與Client1欄位聯結。重要的是要瞭解資料檔案包含的內容。這可能意味著在資料表table #1的Cleint1欄位欄位長度可能是17,因為不小心縮短了5。
   
回文 #7
回覆會員暱稱:辣味的
點數:3050
等級:知識長

榮譽勳章:知識長
發文篇數:135
回文時間:2012-02-13 10:45:12

你好,聽起來好像您的用戶端欄位之一是"姓氏和名字"的資料表和其他資料表中的"名字和姓氏"欄位長度不同。 我的建議定義要用於您的連接的每一個資料表欄位中,就像以下的指令: <for the first case, lastName, firstName>DEFINE FIELD compareName COMPUTED substring(alltrim(split(client," ",2)) + split(client,",",1) + blanks(20), 1, 20)<for the second case, firstName lastName>DEFINE FIELD compareName COMPUTED substring(split(client," ",1) + alltrim(split(client," ",2)) + blanks(20), 1, 20) 這些計算領域會給你一個compareName欄位(例如:"JimSmith"),具有尾數空格20個的字元。 如果有必要,可以將Upper()的計算欄位,添加覆蓋到他們的計算欄位。 當我第一次做聯結指令時,我也做得一踏糊塗,但很高興有論壇的成員幫我做清楚說明。
網站建議與問題回報 | 隱私權政策 | 網站管理規範 | 條款與政策