 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
區榮熾
註冊時間: 2005-11-14 文章: 191
第 1 樓
|
發表於: 星期一 三月 16, 2009 7:55 pm 文章主題: 請教程式碼錯的問題? |
|
|
Select a , b , c ,IIF(Cus_area = "R", Sum(Cus_chg) As Cus3r, Sum(Cus_chg) As Cus3t) , e From file .............
執行結果是"遺漏了逗號(,)"
請教的是,逗號不缺,是否 VFP6.0不接受在IIF條件下的選擇......
(解決方式是多加一條Select程式碼而已) |
|
回頂端 |
|
 |
goodnight

註冊時間: 2008-10-13 文章: 473 來自: 台南市
第 2 樓
|
發表於: 星期一 三月 16, 2009 11:01 pm 文章主題: Re: 請教程式碼錯的問題? |
|
|
區榮熾 寫到: | Select a , b , c ,IIF(Cus_area = "R", Sum(Cus_chg) As Cus3r, Sum(Cus_chg) As Cus3t) , e From file .............
執行結果是"遺漏了逗號(,)"
請教的是,逗號不缺,是否 VFP6.0不接受在IIF條件下的選擇......
(解決方式是多加一條Select程式碼而已) |
IIF(Cus_area = "R", Sum(Cus_chg) As Cus3r, Sum(Cus_chg) As Cus3t) <==這行不對
因為欄位是固定的, 你一下 Cus3r 一下 Cus3t, 就會出問題
除非你
Select a , b , c ,IIF(Cus_area = "R", Sum(Cus_chg) , 0 ) AS CUS3R, IIF(Cus_area <> "R", SUM(Cus_chg) , 0 ) AS CUS3T, e From file
不過這樣是不能執行的, 因為好像沒有這麼做, 兩個 SUM 又要 IF |
|
回頂端 |
|
 |
moon64
註冊時間: 2008-12-16 文章: 45
第 3 樓
|
發表於: 星期二 三月 17, 2009 2:45 am 文章主題: |
|
|
嗯...MR.goodnight 說得沒錯
Select a , b , c , 自訂函數() , e From file .... <~ TRY... |
|
回頂端 |
|
 |
區榮熾
註冊時間: 2005-11-14 文章: 191
第 4 樓
|
發表於: 星期二 三月 17, 2009 5:06 pm 文章主題: |
|
|
moon64 寫到: | 嗯...MR.goodnight 說得沒錯
Select a , b , c , 自訂函數() , e From file .... <~ TRY... |
謝謝指敎,iif( , , )也是函數,我也試過不行的(POST文前就試用過了)
mr.Goodnight大的碼不能簡單的在 一個 IIF()之下,完成需求....謝謝你的說明.
仍然多用一條Select 碼就好了........... |
|
回頂端 |
|
 |
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 5 樓
|
發表於: 星期二 三月 17, 2009 5:21 pm 文章主題: |
|
|
Select a , b , c , Sum(iif(Cus_area = "R",Cus_chg,0)) AS CUS3R, SUM(iif(Cus_area <> "R",Cus_chg,0) AS CUS3T, e From file
試看看 |
|
回頂端 |
|
 |
區榮熾
註冊時間: 2005-11-14 文章: 191
第 6 樓
|
發表於: 星期三 三月 18, 2009 2:52 am 文章主題: |
|
|
ckp6250 寫到: | Select a , b , c , Sum(iif(Cus_area = "R",Cus_chg,0)) AS CUS3R, SUM(iif(Cus_area <> "R",Cus_chg,0) AS CUS3T, e From file
試看看 |
謝謝 ckp6250兄,程式碼正確,原要2條SELECT的,經寫成 SUM(IIF()),就祗要 1 條,簡捷得很..........謝謝.
程式片段;
SELECT 0
Select Area_un, Cus_area, Sum(iif(Cus_area = "R", Cus_chg, 0)) AS CUS_chg3r, Sum(iif(Cus_area = "R", Cus_pice , 0)) AS CUS_pice3r, ;
Sum(iif(Cus_area <> "R", Cus_chg, 0)) AS CUS_chg3t, SUM(iif(Cus_area <> "R", Cus_pice , 0)) AS CUS_pice3t From R0l0filea ;
WHERE &cDate3. And IIF(Cus_area = "R", Cus_pice => 1, Cus_pice > 1) ;
Group By Area_un, Cus_area ORder By Area_un, Cus_area INTO Cursor fc_data3rt
經執行 OK, 謝謝.. |
|
回頂端 |
|
 |
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 7 樓
|
發表於: 星期四 三月 19, 2009 10:25 am 文章主題: |
|
|
既然正確了, 就得更精確,
請改成
Select a , b , c , Sum(iif(Cus_area = "R",Cus_chg,00000000000)) AS CUS3R, SUM(iif(Cus_area <> "R",Cus_chg,00000000000) AS CUS3T, e From file
幾個 0 不一定 , 看您預估最大數值有幾位數
如果 , 有含小數點的話
原式就要改成
Select a , b , c , Sum(iif(Cus_area = "R",Cus_chg,0000000000.00)) AS CUS3R, SUM(iif(Cus_area <> "R",Cus_chg,0000000000.00) AS CUS3T, e From file |
|
回頂端 |
|
 |
區榮熾
註冊時間: 2005-11-14 文章: 191
第 8 樓
|
發表於: 星期五 三月 20, 2009 5:07 pm 文章主題: |
|
|
ckp6250 寫到: | 既然正確了, 就得更精確,
請改成
Select a , b , c , Sum(iif(Cus_area = "R",Cus_chg,00000000000)) AS CUS3R, SUM(iif(Cus_area <> "R",Cus_chg,00000000000) AS CUS3T, e From file
幾個 0 不一定 , 看您預估最大數值有幾位數
如果 , 有含小數點的話
原式就要改成
Select a , b , c , Sum(iif(Cus_area = "R",Cus_chg,0000000000.00)) AS CUS3R, SUM(iif(Cus_area <> "R",Cus_chg,0000000000.00) AS CUS3T, e From file |
謝謝,再指教...
至於 0 與 0000000? 的差異,應該都一樣是 0 (因我用的是數目字,故加總後也是 0,如果是文字的話就如你說為準),謝謝你的考慮,非常深入,請容以後下次指導,再次說...謝謝!! |
|
回頂端 |
|
 |
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 9 樓
|
發表於: 星期五 三月 20, 2009 5:26 pm 文章主題: |
|
|
區榮熾兄:
至於 0 與 0000000? 的差異?總有一天您會遇到差異的,
養成好習慣比較有益 |
|
回頂端 |
|
 |
朱育興
註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
第 10 樓
|
發表於: 星期六 三月 21, 2009 10:33 am 文章主題: |
|
|
00000000000 AS CUS3R
代表 CUS3R 欄位可接受 11 位數字,也就是 N(11)
0 AS CUS3R
代表 CUS3R 欄位可接受 1 位數字,也就是 N(01)
那麼當輸入 25,你認為上述兩種設定後的欄位是否都能將 25 存入到欄位中? _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ |
|
回頂端 |
|
 |
區榮熾
註冊時間: 2005-11-14 文章: 191
第 11 樓
|
發表於: 星期六 三月 21, 2009 1:33 pm 文章主題: |
|
|
朱育興 寫到: | 00000000000 AS CUS3R
代表 CUS3R 欄位可接受 11 位數字,也就是 N(11)
0 AS CUS3R
代表 CUS3R 欄位可接受 1 位數字,也就是 N(01)
那麼當輸入 25,你認為上述兩種設定後的欄位是否都能將 25 存入到欄位中? |
謝謝朱老師的更深一層的思考指導,讓我會在以後的設計思考上多了一層防範....
這次的 SELECT 之後都是加總動作,是故 0 的多少是不影響結果的.因此才回文說無差,卻獲得老師的指導,再一次謝謝..... |
|
回頂端 |
|
 |
區榮熾
註冊時間: 2005-11-14 文章: 191
第 12 樓
|
發表於: 星期六 三月 21, 2009 1:40 pm 文章主題: |
|
|
ckp6250 寫到: | 區榮熾兄:
至於 0 與 0000000? 的差異?總有一天您會遇到差異的,
養成好習慣比較有益 |
謝謝您!
欄位的溢位,常是錯誤的發生因數中比重不輕,謝謝您的叮嚀...... |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|