 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
zfgg
註冊時間: 2004-05-31 文章: 179 來自: 中国
第 1 樓
|
發表於: 星期四 十月 05, 2006 2:54 pm 文章主題: select * from table1 group by seteb into cursor tmp不能运行 |
|
|
近日,将原来的windows 2003 换成windows XP.VFP软件6.0换成9.0.原来在windows 2003 上运行的VFP软件,在windows XP上不能运行,发现不支持 select * from table1 group by seteb into cursor tmp语句.换成select seteb from table1 group by seteb into cursor tmp才能运行.
请问是windows XP,还是VFP软件9.0原因?在程序中还有很多这样的语句,一时不查清,如何处理原来的语句? |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 2 樓
|
發表於: 星期四 十月 05, 2006 3:46 pm 文章主題: |
|
|
請加入
SET ENGINEBEHAVIOR 70
因為VFP 9.0 的SQL ENGINE 運行情況與VFP6不一樣.
正確來說,
VFP 6.0 的語法與其他的SQL SERVER不一樣,
VFP 9.0 的預設值與 M$ SQL SERVER 的運作情況一樣.
找時間修改吧 _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
zfgg
註冊時間: 2004-05-31 文章: 179 來自: 中国
第 3 樓
|
發表於: 星期五 十月 06, 2006 2:36 pm 文章主題: thanks for syntech |
|
|
Syntech,
thank you for teaching.
zfgg |
|
回頂端 |
|
 |
lzm
註冊時間: 2006-02-14 文章: 8 來自: 北京
第 4 樓
|
發表於: 星期六 十月 07, 2006 12:54 am 文章主題: |
|
|
vfp8的group 使用体会:
一些在vfp7以下版本编制的 group 语句 ,往往在vfp8中 报错。
解决的办法,可以用下列两种方式之一:
1. SYS(3099,70)
2. SET ENGINEBEHAVIOR 70
但如果不想这样,就要注意符合vfp8的语句规则:
*!* 有如下数据:l.dbf
*!* bm lx je
*!* 外科 药费 1.01
*!* 外科 手术 2.02
*!* 内科 药费 3.03
*!* 儿科 检查 4.04
在vfp8以下,求分科的金额合计 可以这样:
SELECT bm,sum(je) FROM l GROUP BY bm
结果:
儿科 4.04
内科 3.03
外科 3.03
注意两点:
1。在group by 后的分组字段,必须在 select 中 出现(如 bm )
2。select 后 除分组字段外的其它字段,必须用 sum 求和(或 用 count 求记录数)
要想求交叉表,可用以下语句:
SELECT bm,sum(IIF(lx='药费',je,0)),sum(IIF(lx='手术',je,0)),sum(IIF(lx='检查',je,0)) FROM l GROUP BY bm
结果:
儿科 0.00 0 4
内科 3.03 0 0
外科 1.01 2 0
但这样求出的结果,除一项外,其他lx会丢失小数点后的数据,应该改为:
SELECT bm,sum(IIF(lx='药费',je,0.00)),sum(IIF(lx='手术',je,0.00)),sum(IIF(lx='检查',je,0.00)) FROM l GROUP BY bm
结果:
儿科 0.00 0.00 4.04
内科 3.03 0.00 0.00
外科 1.01 2.02 0.00
其原因在于:产生的交叉表的数据格式,以该组第一次遇到的数据格式为准。狐友不妨试试。
当lx各项数量不确定时(药费,手术,检查,治疗,。。。),可以采用拼接的方式,来组织 select 后的 语句,就可以灵活求出 交叉表了。 |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|