 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
grapfrut
註冊時間: 2007-11-22 文章: 3
第 1 樓
|
發表於: 星期四 十一月 22, 2007 11:40 am 文章主題: 有兩個問題想請教一下 |
|
|
1. 最近有個任務需要把字型檔(eudc.tte)內的造字取出來放入資料庫內, 例如從FA40-FB4F, 不知道有什麼方法可以解決?
2. 比對資料庫內資料是否有重複的時候, 小弟通常都是用"SELECT DISTINCT * FROM xxx INTO TABLE no_double", 可是這有個問題, 因為比對資料的方式是包含所有的欄位一起比對, 全部不相同的才會踢除.
可是如果我只需要比對其中一個欄位, 例如a1, 這時如果我下指令"SELECT DISTINCT a1 FROM xxx INTO TABLE no_double", 他就變成只會把a1這個欄位複製到"no_double"的table內.
不知道有沒有其他的解決方法?
請各位前輩指教, 謝謝 |
|
回頂端 |
|
 |
wuno2001
註冊時間: 2007-02-09 文章: 56
第 2 樓
|
發表於: 星期四 十一月 22, 2007 1:47 pm 文章主題: |
|
|
問題2:
試試 SELECT * FROM xxx group by a1 INTO TABLE no_double
但是,當重覆時會取出recno()較大者
SELECT *,count(*) as 出現次數 FROM xxx group by a1 INTO TABLE no_double
如果再選出現次數=1者就是未重覆者 |
|
回頂端 |
|
 |
grapfrut
註冊時間: 2007-11-22 文章: 3
第 3 樓
|
發表於: 星期四 十一月 22, 2007 3:54 pm 文章主題: |
|
|
了解了
謝謝您的解答 ^^ |
|
回頂端 |
|
 |
grapfrut
註冊時間: 2007-11-22 文章: 3
第 4 樓
|
發表於: 星期三 十一月 28, 2007 4:46 pm 文章主題: |
|
|
問題二經過wuno2001大的提示
把敘述改成"SELECT address, COUNT(address) tmpAdd FROM a1 GROUP BY address ORDER BY tmpAdd"之後便可以執行
不過還是只能選擇單獨一個欄位, 沒辦法一次秀出所有欄位
問題一也解決了....
解決方法是用chr(x)這個函數,
如要8E40這個內碼字, 前面的16進位數字8E換算是142, 後面的40換算是64
所以使用"replace XX with allt(chr(142)+chr(64))"把他秀出來 *因為中文是兩個字元組成的
在配合迴圈就能把所有造字檔裡面的內碼字叫出來了. |
|
回頂端 |
|
 |
wuno2001
註冊時間: 2007-02-09 文章: 56
第 5 樓
|
發表於: 星期四 十一月 29, 2007 9:41 am 文章主題: |
|
|
試試
SELECT *, COUNT(*) as tmpAdd FROM a1 GROUP BY address ORDER BY tmpAdd |
|
回頂端 |
|
 |
catfish
註冊時間: 2003-05-29 文章: 45 來自: 台中
第 6 樓
|
發表於: 星期二 十二月 04, 2007 11:10 am 文章主題: |
|
|
可以請教一下,要如何讀取eudc.tte這個檔嗎?
我無法判別它的格式....
謝謝您!  |
|
回頂端 |
|
 |
catfish
註冊時間: 2003-05-29 文章: 45 來自: 台中
第 7 樓
|
發表於: 星期二 十二月 04, 2007 11:16 am 文章主題: |
|
|
哦! 我瞭解您的作法了,
不好意思,佔用這個篇幅! ^^ |
|
回頂端 |
|
 |
Watermelon
註冊時間: 2005-01-22 文章: 204
第 8 樓
|
發表於: 星期四 六月 19, 2008 1:21 pm 文章主題: |
|
|
wuno2001 寫到: | 問題2:
試試 SELECT * FROM xxx group by a1 INTO TABLE no_double
但是,當重覆時會取出recno()較大者
SELECT *,count(*) as 出現次數 FROM xxx group by a1 INTO TABLE no_double
如果再選出現次數=1者就是未重覆者 |
我用 SELECT * FROM xxx group by a1 INTO TABLE no_double
但是當重覆時為會取出recno()較小者,請問我的電腦是出了啥問題? |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 9 樓
|
發表於: 星期四 六月 19, 2008 1:46 pm 文章主題: |
|
|
沒什麼問題,
"SELECT * FROM xxx group by a1 INTO TABLE no_double " 基本上就是VFP亂搞的.
其他工具的SQL 這樣寫是錯的.
趁早改掉比較好. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
區榮熾
註冊時間: 2005-11-14 文章: 191
第 10 樓
|
發表於: 星期四 六月 19, 2008 7:48 pm 文章主題: |
|
|
Watermelon 寫到: | wuno2001 寫到: | 問題2:
試試 SELECT * FROM xxx group by a1 INTO TABLE no_double
但是,當重覆時會取出recno()較大者
SELECT *,count(*) as 出現次數 FROM xxx group by a1 INTO TABLE no_double
如果再選出現次數=1者就是未重覆者 |
我用 SELECT * FROM xxx group by a1 INTO TABLE no_double
但是當重覆時為會取出recno()較小者,請問我的電腦是出了啥問題? |
A: 1:當要對資料庫整理重複篩檢的工作,是件不輕鬆的工作,工作量的輕重是由 資 料庫組成的欄位多少,及資料筆數多少,每筆的長度*欄位的總和+1, 這表示工作量要先知道,這樣才能決定工作的深度.(有時間做繁些,否則挑簡易的)
2:將 Cot > 1 的從 no_double 列印出.
3:將印出資料表與正確的資料比對,以人工判定何者留,何者殺
4:當判定工作完成,即進行清理資料(將不留的pack)的工作.
5:用SCAN -> Delete -> EndScan -> Pack(最後做) 進行清理工作
(有多少欄想重整,就做多少次)(一定要把 3: 做完整才不會DElete 錯誤)
B: Recno()的大小排列是該電腦預設的,電腦沒問題.
以上是我處理重整資料庫的方式,提供參考..... |
|
回頂端 |
|
 |
Watermelon
註冊時間: 2005-01-22 文章: 204
第 11 樓
|
發表於: 星期日 十一月 01, 2009 4:23 am 文章主題: |
|
|
catfish 寫到: | 可以請教一下,要如何讀取eudc.tte這個檔嗎?
我無法判別它的格式....
謝謝您!  |
grapfrut 大大您好!
我也想知道要如何讀取eudc.tte這個檔,您都會了能分享一下嗎? |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|