VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

相同的條件式 SCOPE不同 結果差很大

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
rusifar



註冊時間: 2012-11-06
文章: 7


第 1 樓

發表發表於: 星期二 十一月 06, 2012 2:30 pm    文章主題: 相同的條件式 SCOPE不同 結果差很大 引言回覆

使用AVERAGE,用了ALL可以正確的運算
但相同條件式,只有SCOPE不同 改為NEXT 10

照理來說最少要有個值 但竟然是0 真不知道怎麼回事
AVERAGE S ALL FOR A_csr.AA=B_csr.BB TO Avg

AVERAGE S NEXT 10 FOR A_csr.AA=B_csr.BB TO Avg2
兩句結果是ALL正確運算 NEXT不管多少全都是0
請問為何會這樣?
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1645


第 2 樓

發表發表於: 星期二 十一月 06, 2012 3:21 pm    文章主題: 引言回覆

執行 AVERAGE S NEXT 10 FOR A_csr.AA=B_csr.BB TO Avg2 之前,
有沒有先 Go Top
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
rusifar



註冊時間: 2012-11-06
文章: 7


第 3 樓

發表發表於: 星期二 十一月 06, 2012 3:26 pm    文章主題: 引言回覆

有的
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 4 樓

發表發表於: 星期二 十一月 06, 2012 3:43 pm    文章主題: 引言回覆

你可能有開啟索引檔
所以你的next 10指標是跟著索引檔的指標
因為有時候會開啟多個索引檔 那麼你的next 10 就很複雜
看你需要的是哪個 next 10
回頂端
檢視會員個人資料 發送私人訊息
rusifar



註冊時間: 2012-11-06
文章: 7


第 5 樓

發表發表於: 星期二 十一月 06, 2012 4:16 pm    文章主題: 引言回覆

兩行中間有GO TOP 那NEXT 10應該是用在TOP的指標吧?
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 6 樓

發表發表於: 星期二 十一月 06, 2012 4:27 pm    文章主題: 引言回覆

go top
那麼接下來的 10筆 就可能是索引檔的 next 10

重要的是 你只想算原來的 下10筆 不是索引檔的下10筆
把檔案的道理搞清楚之後 就可以了
你可以寫一段試看看
go top
x=1
do while .not. eof()
if (你的條件)
x=x+1
if x>11
exit
endif
? str(s)
endif
skip
enddo
wait

接著
close index
go top
x=1
do while .not. eof()
if (你的條件)
x=x+1
if x>11
exit
endif
? str(s)
endif
skip
enddo
wait
回頂端
檢視會員個人資料 發送私人訊息
rusifar



註冊時間: 2012-11-06
文章: 7


第 7 樓

發表發表於: 星期二 十一月 06, 2012 4:39 pm    文章主題: 引言回覆

抱歉 b大
不過我要算的是從頭開始的下10筆
我需要的就是Avg=全體平均
Avg2=前10筆平均
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 8 樓

發表發表於: 星期二 十一月 06, 2012 4:47 pm    文章主題: 引言回覆

把那兩段加進去跑跑看 就知道是不是你要的結果了
加在go top後面
看看兩次結果是不是一樣 就可以了解了
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 9 樓

發表發表於: 星期二 十一月 06, 2012 4:48 pm    文章主題: 引言回覆

sele 1
use yourfile
go top
AVERAGE S ALL FOR A_csr.AA=B_csr.BB TO Avg
go top
AVERAGE S NEXT 10 FOR A_csr.AA=B_csr.BB TO Avg2
? str(avg)
? str(avg2)
wait

之所以avg2=0
是因為 next 10裡面 A_csr.AA=B_csr.BB 的筆數為0
回頂端
檢視會員個人資料 發送私人訊息
rusifar



註冊時間: 2012-11-06
文章: 7


第 10 樓

發表發表於: 星期二 十一月 06, 2012 5:34 pm    文章主題: 引言回覆

小子粗淺還是不了解
b大可否解惑為何筆數為0
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 11 樓

發表發表於: 星期二 十一月 06, 2012 5:38 pm    文章主題: 引言回覆

也就是 1-˙10筆裡面 符合 AA=BB 的 一筆也沒有
回頂端
檢視會員個人資料 發送私人訊息
rusifar



註冊時間: 2012-11-06
文章: 7


第 12 樓

發表發表於: 星期二 十一月 06, 2012 5:42 pm    文章主題: 引言回覆

原來是這樣!!
我看語法 一直以為是他會去抓AA=BB的前10筆
原來是我完全搞錯

小子厚顏
請問我該如何下手
才能抓AA=BB前10筆
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1645


第 13 樓

發表發表於: 星期二 十一月 06, 2012 5:49 pm    文章主題: 引言回覆

試看看

set filter to A_csr.AA=B_csr.BB
go top
AVERAGE S NEXT 10 TO Avg2
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
rusifar



註冊時間: 2012-11-06
文章: 7


第 14 樓

發表發表於: 星期二 十一月 06, 2012 6:04 pm    文章主題: 引言回覆

感謝b大 c大 準確無誤完成所需!
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作