上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
andywilliams
註冊時間: 2004-10-23 文章: 111
第 16 樓
|
發表於: 星期六 十二月 18, 2004 2:02 am 文章主題: |
|
|
CALCULATE eExpressionList
[Scope] [FOR lExpression1] [WHILE lExpression2]
[TO VarList | TO ARRAY ArrayName]
[NOOPTIMIZE]
Arguments
eExpressionList Specifies the expressions that can contain any combination of the following functions:
AVG(nExpression)
CNT( )
MAX(eExpression)
MIN(eExpression)
NPV(nExpression1, nExpression2 [, nExpression3])
STD(nExpression)
SUM(nExpression)
Help 說它是函數喔 |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 17 樓
|
發表於: 星期六 十二月 18, 2004 10:00 am 文章主題: |
|
|
論語: 學而不思則惘,思而不學則殆  _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 18 樓
|
發表於: 星期六 十二月 18, 2004 10:05 am 文章主題: |
|
|
仔細推敲的話,
在CALCULATE裡的 sum() 其實只是一個參數而已,
只是一個字串而已!
FROM THE HELP OF THE "CALCULATE"
----------
Functions in the expression list eExpressionList are separated by commas. These functions are specific to CALCULATE and are described in detail later in this section. They should not be confused with similarly named independent functions. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 19 樓
|
發表於: 星期六 十二月 18, 2004 10:24 am 文章主題: |
|
|
SUM (FIELD1) TO A 可以運作,
但是沒有 A=SUM(FIELD1).
SUM (FIELD1) TO A 可以是因為
"(FILED1)" 符合 SUM [eExpressionList] 的條件,
也就是 你可以寫 SUM (FIELD1+FIELD2) TO A,
而你只是少寫了 "+FIELD2" 而已
詳情請參閱 "COMPILER" "Lexical Analysis & Syntax Analysis" _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
bin1x
註冊時間: 2004-08-27 文章: 462
第 20 樓
|
發表於: 星期六 十二月 18, 2004 10:37 am 文章主題: |
|
|
朱先生的作法就是結果,只是不曉得
問問題的人滿意報表做這樣的結果
且
select yyyy,sum(xxxx) from table1
而沒有group by 的話,結果只有一筆
且要以上的query 結果用report 表現出來
不會有明細的,是無法表現成像朱先生那樣的結果的
query 只抓取所有資料
資料進入報表之後,再由報表來處理
不過市面上的書,很少人去提到報表的例子
或是很少有人拿foxpro來處理報表
或是報表不被重視 |
|
回頂端 |
|
 |
andywilliams
註冊時間: 2004-10-23 文章: 111
第 21 樓
|
發表於: 星期六 十二月 18, 2004 11:38 am 文章主題: |
|
|
函數可以當參數使用..
ex : str( val() )
val() 是 函數 ,把其傳回值給 str()當參數
但不能 str( sum() ), 因為 sum() 沒有傳回值
也不能 str( STRTRAN() ), 因為 STRTRAN() 傳回值是字串, STR()要求的參數是數值
所以 ?sum(), 在報表放 sum(),...都是要sum()顯示傳回值,當然出錯 |
|
回頂端 |
|
 |
bin1x
註冊時間: 2004-08-27 文章: 462
第 22 樓
|
發表於: 星期六 十二月 18, 2004 2:25 pm 文章主題: |
|
|
syntech 寫到: | 我不能佩服你再多......  |
終於明白這句話的意思了 |
|
回頂端 |
|
 |
tjololo
註冊時間: 2004-11-29 文章: 38
第 23 樓
|
發表於: 星期六 十二月 18, 2004 3:10 pm 文章主題: |
|
|
怎么回事,我按andywilliams的方法定义了mysum.prg后,提示没有定义parameter,我加了一条parameter A后,报表运行后变空了,只剩下一个分数汇总了,还不是分组汇总,加起来300多分。 |
|
回頂端 |
|
 |
tjololo
註冊時間: 2004-11-29 文章: 38
第 24 樓
|
發表於: 星期六 十二月 18, 2004 3:37 pm 文章主題: |
|
|
我只要得到朱先生的那种效果就心滿意足了! |
|
回頂端 |
|
 |
andywilliams
註冊時間: 2004-10-23 文章: 111
第 25 樓
|
發表於: 星期六 十二月 18, 2004 4:18 pm 文章主題: |
|
|
MSDN :
aggregate function(累計式運算函數)
一個從一組值中產生一個值的函數,通常使用 GROUP BY 和 HAVING 子句。累計式運算函數包括 AVG( )、COUNT( )、MAX( )、MIN( ) 和 SUM( ),也稱為集合物件函數。 |
|
回頂端 |
|
 |
andywilliams
註冊時間: 2004-10-23 文章: 111
第 26 樓
|
發表於: 星期六 十二月 18, 2004 4:58 pm 文章主題: |
|
|
tjololo 寫到: | ...定义了mysum.prg... |
有幾點要注意
1. SUM 後 RECNO() 在 EOF, 需回復
2. 傳入當時變數當參數
ex:
MySun(學號)
*MySun.prg
PARAMETERS M學號
Mrecno=recno()
sum 学分 to M学分 for 學號=M學號 .and. recno() <= Mrecno
go Mrecno
return(M学分) && 個人學分累加值 |
|
回頂端 |
|
 |
tjololo
註冊時間: 2004-11-29 文章: 38
第 27 樓
|
發表於: 星期六 十二月 18, 2004 9:46 pm 文章主題: |
|
|
andywilliams,还有朱先生,还有各位出意见的朋友们,非常感谢!总算得到滿意的结果。不过for 后面的and条件要去掉,或则得不到汇总结果。
我一个完全不懂vfp的人能够做出一个简单的成绩管理系统,真的很高兴,这完全是大家的功劳。 |
|
回頂端 |
|
 |
朱育興
註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
第 28 樓
|
發表於: 星期日 十二月 19, 2004 12:03 am 文章主題: |
|
|
CALCUATE 命令中的 SUM() 以及 SELECT - SQL 命令中的 SUM(),它們只是依存於其命令的「內儲式」函數,而我要強調的是,它們不是 VFP 提供的「標準」函數
會這樣說,那麼就拿 CALCUATE 命令中另一個你稱之為的函數 COUNT(),你用測試 SUM() 的方式拿來測試 COUNT(),你覺得 VFP 對它的反應是如何呢?
那麼 SUM() 卻怎麼會這樣了,我覺得是因為 VFP 中有 SUM 命令的關係,不過只是很好奇 VFP 怎麼能允許這樣的行為。 _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ |
|
回頂端 |
|
 |
bin1x
註冊時間: 2004-08-27 文章: 462
第 29 樓
|
發表於: 星期日 十二月 19, 2004 8:42 am 文章主題: |
|
|
朱育興 寫到: | CALCUATE 命令中的 SUM() 以及 SELECT - SQL 命令中的 SUM(),它們只是依存於其命令的「內儲式」函數,而我要強調的是,它們不是 VFP 提供的「標準」函數
會這樣說,那麼就拿 CALCUATE 命令中另一個你稱之為的函數 COUNT(),你用測試 SUM() 的方式拿來測試 COUNT(),你覺得 VFP 對它的反應是如何呢?
那麼 SUM() 卻怎麼會這樣了,我覺得是因為 VFP 中有 SUM 命令的關係,不過只是很好奇 VFP 怎麼能允許這樣的行為。 |
不說倒是沒注意
count 成了cnt()
節取calcuate說明的一小部份
CNT( ) Returns the number of records in the table. Only records meeting the Scope and/or optional FOR or WHILE conditions are included in the result.
倒是有趣 |
|
回頂端 |
|
 |
andywilliams
註冊時間: 2004-10-23 文章: 111
第 30 樓
|
發表於: 星期日 十二月 19, 2004 11:47 am 文章主題: |
|
|
答案並不重要,關鍵在於思考 |
|
回頂端 |
|
 |
|