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

不定列行列轉換(直轉橫)
前往頁面 上一頁  1, 2
 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
ckp6250



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


第 16 樓

發表發表於: 星期一 十月 30, 2017 10:18 am    文章主題: 引言回覆

您試一下這行vfp指令,再自行變化。
代碼:

SELECT ;
b.name,;
IIF(!EMPTY(MAX(內湖區)),'內湖區','')+;
IIF(!EMPTY(MAX(中山區)),'中山區','')+;
IIF(!EMPTY(MAX(萬華區)),'萬華區','')+;
IIF(!EMPTY(MAX(貢寮區)),'貢寮區','')+;
IIF(!EMPTY(MAX(瑞芳區)),'瑞芳區','')+;
IIF(!EMPTY(MAX(板橋區)),'板橋區','')+;
IIF(!EMPTY(MAX(中和區)),'中和區','')+;
IIF(!EMPTY(MAX(永和區)),'永和區','')+SPACE(100) AS area ;
from (;
SELECT ;
name,;
IIF(area='內湖區',name,'          ') as '內湖區' ,;
IIF(area='中山區',name,'          ') as '中山區' ,;
IIF(area='萬華區',name,'          ') as '萬華區' ,;
IIF(area='貢寮區',name,'          ') as '貢寮區' ,;
IIF(area='瑞芳區',name,'          ') as '瑞芳區' ,;
IIF(area='板橋區',name,'          ') as '板橋區' ,;
IIF(area='中和區',name,'          ') as '中和區' ,;
IIF(area='永和區',name,'          ') as '永和區' ;
FROM (;
SELECT name,area  FROM areadata GROUP BY name,area) a ) b ;
GROUP BY name
回頂端
檢視會員個人資料 發送私人訊息
sthuang66



註冊時間: 2014-04-27
文章: 131


第 17 樓

發表發表於: 星期一 十月 30, 2017 1:16 pm    文章主題: 引言回覆

謝謝大家指導!我試試看
回頂端
檢視會員個人資料 發送私人訊息
sthuang66



註冊時間: 2014-04-27
文章: 131


第 18 樓

發表發表於: 星期一 十月 30, 2017 1:38 pm    文章主題: 引言回覆

原來是area.jpg希望轉換成類似temp.jpg這種格式
回頂端
檢視會員個人資料 發送私人訊息
lygcw9603



註冊時間: 2011-12-25
文章: 78


第 19 樓

發表發表於: 星期三 十一月 01, 2017 4:50 pm    文章主題: 引言回覆

代碼:

crea curs areadata (cname c(20),area c(6))
inse into areadata valu ('john','內湖區')
inse into areadata valu ('john','中山區')
inse into areadata valu ('john','萬華區')
inse into areadata valu ('tom','貢寮區')
inse into areadata valu ('tom','瑞芳區')
inse into areadata valu ('mary','內湖區')
inse into areadata valu ('mary','中山區')
inse into areadata valu ('mary','板橋區')
inse into areadata valu ('mary','中和區')
inse into areadata valu ('bob','永和區')
SELECT MAX(nrows) FROM (SELECT COUNT(*) nrows FROM areadata GROUP BY cname) aa INTO ARRAY amax
cfield="cname c(20)"
FOR i=1 TO amax
    cfield=cfield+",area"+TRANSFORM(i)+" c(10)"
ENDFOR
CREATE CURSOR tt (&cfield)
INDEX ON cname TAG px

SELECT areadata
SET RELATION TO cname INTO tt
n=1
SCAN
    IF FOUND("tt")
        REPLACE ("area"+TRANSFORM(n)) WITH areadata.area IN tt
    ELSE
        INSERT INTO tt (cname,area1) VALUES (areadata.cname,areadata.area)
        n=1
    ENDIF
    n=n+1
ENDSCAN
SET RELATION TO
SELECT tt
SET ORDER TO
BROWSE


lygcw9603 在 星期二 十一月 07, 2017 12:59 pm 作了第 3 次修改
回頂端
檢視會員個人資料 發送私人訊息
lygcw9603



註冊時間: 2011-12-25
文章: 78


第 20 樓

發表發表於: 星期三 十一月 01, 2017 5:29 pm    文章主題: 引言回覆

重复了,請版主刪除該帖!

lygcw9603 在 星期四 十一月 02, 2017 12:12 pm 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息
sthuang66



註冊時間: 2014-04-27
文章: 131


第 21 樓

發表發表於: 星期四 十一月 02, 2017 12:51 am    文章主題: 引言回覆

謝謝lygcw9603的指教! 我利用你的方法寫了如下
----------------------------------------------------------------------------
crea TABLE areadata1 (Cname c(20),are c(6),SCORE N(4))
inse into areadata1 valu ('john','內湖區',2)
inse into areadata1 valu ('john','中山區',3)
inse into areadata1 valu ('john','萬華區',6)
inse into areadata1 valu ('tom','貢寮區',4)
inse into areadata1 valu ('tom','瑞芳區',4)
inse into areadata1 valu ('mary','內湖區',2)
inse into areadata1 valu ('mary','中山區',1)
inse into areadata1 valu ('mary','板橋區',6)
inse into areadata1 valu ('mary','中和區',9)
inse into areadata1 valu ('bob','永和區',10)

SELECT CNAME,ARE+"="+ALLTRIM(STR(SCORE)) AS AREA FROM AREADATA1 INTO DBF AREADATA

SELECT MAX(nrows) FROM (SELECT COUNT(*) nrows FROM areadata GROUP BY cname) aa INTO ARRAY amax
cfield="cname c(20)"
FOR i=1 TO amax
cfield=cfield+",area"+TRANSFORM(i)+" c(10)"
ENDFOR
CREATE CURSOR tt (&cfield)
INDEX ON cname TAG px

SELECT areadata
SET RELATION TO cname INTO tt
n=1
c1=" "
SCAN
IF FOUND("tt")
REPLACE ("area"+TRANSFORM(n)) WITH areadata.area IN tt
ELSE
INSERT INTO tt (cname,area1) VALUES (areadata.cname,areadata.area)
n=1
ENDIF
n=n+1
ENDSCAN
SET RELATION TO
SELECT tt
SET ORDER TO
BROWSE
--------------------------------------------------------------------------
出來結果還不錯, 謝謝各位高手的幫助!讓我功力增加不少
回頂端
檢視會員個人資料 發送私人訊息
lygcw9603



註冊時間: 2011-12-25
文章: 78


第 22 樓

發表發表於: 星期四 十一月 02, 2017 12:07 pm    文章主題: 引言回覆

SELECT CNAME,ARE+"="+ALLTRIM(STR(SCORE)) AS AREA FROM AREADATA1 INTO DBF AREADATA
可改為:
SELECT CNAME,ARE+"="+TRANSFORM(SCORE) AS AREA FROM AREADATA1 INTO DBF AREADATA
回頂端
檢視會員個人資料 發送私人訊息
lygcw9603



註冊時間: 2011-12-25
文章: 78


第 23 樓

發表發表於: 星期四 十一月 02, 2017 12:10 pm    文章主題: 引言回覆

類似問題都可以用類似的代碼解決
回頂端
檢視會員個人資料 發送私人訊息
sthuang66



註冊時間: 2014-04-27
文章: 131


第 24 樓

發表發表於: 星期一 十一月 13, 2017 5:43 pm    文章主題: 又有一個小問題!是關於SQL的join 引言回覆

tn檔是利用上面直轉橫的處理好檔案! r2則是另外業績檔!要利用NAME inner join
-----------------------------------------------------------------------
SELECT R2.RANK,R2.name,R2.SUM,R2.NO,TN.area1,tn.area2,tn.area3,tn.area4 FROM R2 INNER JOIN TN ON R2.name=TN.name ORDER BY rank INTO TABLE temp

------------------------------------------------------------------------------
新的temp檔產生欄位順序卻非以上順序!而是
rank,sum,no,area1,area2,area3,area4,name
-------------------------------------------------------------------------------
是希望rank,name,sum,no,area1,area2,area3,area4然後用copy to temp type xl5 直接輸出成EXCEL
-------------------------------------------------------------------------
這個問題不知道各位高手!知道VFP 用SQL語法連接後!電腦欄位是根據什麼去排列!!!感謝大家不吝指教!或是有什麼方法可以控制
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
前往頁面 上一頁  1, 2
2頁(共2頁)

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


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