|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 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 文章: 173
第 17 樓
|
發表於: 星期一 十月 30, 2017 1:16 pm 文章主題: |
|
|
謝謝大家指導!我試試看 |
|
回頂端 |
|
|
sthuang66
註冊時間: 2014-04-27 文章: 173
第 18 樓
|
發表於: 星期一 十月 30, 2017 1:38 pm 文章主題: |
|
|
原來是area.jpg希望轉換成類似temp.jpg這種格式 |
|
回頂端 |
|
|
lygcw9603
註冊時間: 2011-12-25 文章: 129
第 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 文章: 129
第 20 樓
|
發表於: 星期三 十一月 01, 2017 5:29 pm 文章主題: |
|
|
重复了,請版主刪除該帖!
lygcw9603 在 星期四 十一月 02, 2017 12:12 pm 作了第 1 次修改 |
|
回頂端 |
|
|
sthuang66
註冊時間: 2014-04-27 文章: 173
第 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 文章: 129
第 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 文章: 129
第 23 樓
|
發表於: 星期四 十一月 02, 2017 12:10 pm 文章主題: |
|
|
類似問題都可以用類似的代碼解決 |
|
回頂端 |
|
|
sthuang66
註冊時間: 2014-04-27 文章: 173
第 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語法連接後!電腦欄位是根據什麼去排列!!!感謝大家不吝指教!或是有什麼方法可以控制 |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|