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

用select 命令把表竖的记录变成横的记录,为什么有二种结果?

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



註冊時間: 2008-04-11
文章: 93


第 1 樓

發表發表於: 星期六 三月 12, 2011 3:34 pm    文章主題: 用select 命令把表竖的记录变成横的记录,为什么有二种结果? 引言回覆

KA图是表的原始状态,极大部分考生每人报2科,但个别只报1科(9,11,15号记录),都是竖的记录。现要把它变成横的记录,就是把course中记录分别用KM1,KM2来表示,如K图。(这是用VFP做的)。现在改为SELECT 来做为什么不成功?
1。select card_no,max(iif((course='100'.or.course='200'.or.course='300'),course, ' ')) as km1,max(iif((course<>'100'.and.course<>'200'.and.course<>'300'),course,' ' )) as km2 from kc1 group by card_no。出现如KB图状态,在KM2中出现的不是三位数的内容,而是1或2,3。我想判断语句应是没有问题。
2。select card_no,max(iif((course='100'.or.course='200'.or.course='300'),course, ' ')) as km1,max(iif((course='100'.and.course='200'.and.course='300'),' ', course)) as km2 from kc1 group by card_no 出现KC图的状态。虽KM2粗看一下好象出现了要想得到的内容,但发现9,11,15号记录,只报100,没有报其它,但100同时出现在KM1与KM2中这也是不对。判断语句肯定不对,但好象出现想要的结果。不知如何能达到想要的结果呢?请高手指教。K图二张重复了。
回頂端
檢視會員個人資料 發送私人訊息
480615



註冊時間: 2008-04-11
文章: 93


第 2 樓

發表發表於: 星期日 三月 13, 2011 8:24 pm    文章主題: 引言回覆

没有高人指教呀可能我表达的不清楚吧?附上文件。请行家指,多谢了。http://vfp.sunyear.com.tw/files/ka__22270__o_______l__29366___24577__144.rar

附上kc.dbf.


480615 在 星期日 三月 13, 2011 11:59 pm 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



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


第 3 樓

發表發表於: 星期日 三月 13, 2011 9:14 pm    文章主題: 引言回覆

請把您的 kc1.dbf 掛上來吧
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
480615



註冊時間: 2008-04-11
文章: 93


第 4 樓

發表發表於: 星期一 三月 14, 2011 12:03 am    文章主題: 引言回覆

kc.dbf已附上,第2楼也有,请给我诊断一下。还有如下的内容也请一同指教了。谢谢!
在vfp9中这样的语句为什么通不过?我是从别人用SQL把竖表变成横表的方法中引伸过来的,可能只准对纯的SQL。
select a.card_no,b.km1,c.km2 from (select card_no from kc group by a.card_no) a left join (select card_no ,course as km1 from kc where course='100'.or.course='200'.or.course='300') b on a.crad_no=b.crad_no left join (select card_no ,course as km2 from kc where course<>'100'.and.course<>'200'.and.course<>'300') c on a.card_no=c.card_no
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



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


第 5 樓

發表發表於: 星期一 三月 14, 2011 9:13 pm    文章主題: 引言回覆

代碼:

Select a.card_no , Max(a.km1) As km1 , Max(a.km2) As km2 ;
   FROM (Select card_no,Iif(course $ '100,200,300',course,'   ') As km1,   Iif(! course $ '100,200,300',course,'   ') As km2 From kc) a;
   GROUP By a.card_no
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
480615



註冊時間: 2008-04-11
文章: 93


第 6 樓

發表發表於: 星期一 三月 14, 2011 11:09 pm    文章主題: 引言回覆

我试了一下,提示此句语法错误:FROM (Select card_no,Iif(course $ '100,200,300',course,' ') As km1, Iif(! course $ '100,200,300',course,' ') As km2 From kc) a;
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



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


第 7 樓

發表發表於: 星期二 三月 15, 2011 10:20 am    文章主題: 引言回覆

您的 VFP 版本 ?
莫非是舊版不支援子查詢 ?

這段語句,在 vfp9.0底下是 ok 的
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
480615



註冊時間: 2008-04-11
文章: 93


第 8 樓

發表發表於: 星期二 三月 15, 2011 2:18 pm    文章主題: 引言回覆

我是VFP90SP2_7423版。VFP6与VFP9都试了,同样的提示。我再去试一下。再向您请教。
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 9 樓

發表發表於: 星期二 三月 15, 2011 6:05 pm    文章主題: 引言回覆

SET ENGINEBEHAVIOR 90 ?
_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
480615



註冊時間: 2008-04-11
文章: 93


第 10 樓

發表發表於: 星期二 三月 15, 2011 6:08 pm    文章主題: 引言回覆

你的命令在VFP9下成功了。我重新输入了一遍。太谢了。

下面的命令在VFP6及VFP9下都成功了,为什么KM2数字不全,原因是' '长度不够长,应是3个空格。
select card_no,max(iif((course='100'.or.course='200'.or.course='300'),course, ' ')) as km1,max(iif((course<>'100'.and.course<>'200'.and.course<>'300'),course,' ' )) as km2 from kc1 group by card_no
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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