![VFP 愛用者社區 首頁](templates/subSilver/images/vfps.jpg) |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
sthuang66
註冊時間: 2014-04-27 文章: 171
第 1 樓
|
發表於: 星期四 八月 07, 2014 8:32 am 文章主題: 請較高手如何把四個表裝成一個表 |
|
|
舉例我有以下四個表
表1
公司\橘子
A 5
B 3
C
表2
公司\蘋果
B 3
C 2
表3
公司\荔枝
A 3
B 5
表4
公司\芭樂
A 5
C 3
想併成一個
公司\ 橘子\ 蘋果\ 荔枝\ 芭樂
A \ 5 \ 0 \ 3 \ 5
B \ 3 \ 3 \ 5 \ 0
C \ 0 \ 2 \ 0 \ 3
我想過用Append不行
用inner join 不行
用full join 會跳 null
這種表的合併如果很小用Excel眼睛比一下就好!但是若是公司量變成100個以上就不行了
請各位高手不吝賜教 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
syntech
註冊時間: 2003-05-16 文章: 4212 來自: Taipei,Taiwan
第 2 樓
|
發表於: 星期四 八月 07, 2014 8:39 am 文章主題: |
|
|
create 表 5 (公司,橘子,蘋果,荔枝,芭樂)
append from 表1
append from 表2
append from 表3
append from 表4 _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
aizz
註冊時間: 2007-01-29 文章: 171
第 3 樓
|
發表於: 星期四 八月 07, 2014 11:50 am 文章主題: |
|
|
syntech 寫到: | create 表 5 (公司,橘子,蘋果,荔枝,芭樂)
append from 表1
append from 表2
append from 表3
append from 表4 |
寫程式之前, 一定要先學會腦筋急轉彎
![Twisted Evil](images/smiles/icon_twisted.gif) |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
syntech
註冊時間: 2003-05-16 文章: 4212 來自: Taipei,Taiwan
第 4 樓
|
發表於: 星期四 八月 07, 2014 11:54 am 文章主題: |
|
|
FULL JOIN 再把 NULL 清掉也可以. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 5 樓
|
發表於: 星期四 八月 07, 2014 11:56 am 文章主題: |
|
|
我比較喜歡一指禪
代碼: |
Select 公司 , Sum(橘子) As 橘子 , Sum(蘋果) As 蘋果 , Sum(荔枝) As 荔枝 , Sum(芭樂) As 芭樂 ;
FROM (;
SELECT 公司 , Mount As 橘子 ,0000 As 蘋果, 0000 As 荔枝 , 0000 As 芭樂 From 表1 ;
UNION All;
SELECT 公司 , 0000 As 橘子 ,Mount As 蘋果, 0000 As 荔枝 , 0000 As 芭樂 From 表2 ;
UNION All;
SELECT 公司 , 0000 As 橘子 ,0000 As 蘋果, Mount As 荔枝 , 0000 As 芭樂 From 表3 ;
UNION All;
SELECT 公司 , 0000 As 橘子 ,0000 As 蘋果, 0000 As 荔枝 , Mount As 芭樂 From 表4) a ;
GROUP By 公司 ;
into cursor 表5
|
ckp6250 在 星期四 八月 07, 2014 12:02 pm 作了第 2 次修改 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
syntech
註冊時間: 2003-05-16 文章: 4212 來自: Taipei,Taiwan
第 6 樓
|
發表於: 星期四 八月 07, 2014 12:00 pm 文章主題: |
|
|
金剛經有云:
會寫 VFP 程式者,即非會VFP,是名會VFP. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
perry
註冊時間: 2014-07-20 文章: 203
第 7 樓
|
發表於: 星期四 八月 07, 2014 1:12 pm 文章主題: |
|
|
換個方向思考試試!!
crea dbf aa (company c(10),mountA n(3),mountB n(3),mountC n(3))
inse into aa valu ('橘子',3,5,0)
inse into aa valu ('蘋菓',0,3,2)
.
.
.
copy to bb.xls type xl5 &&轉成excel |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
oldbb
註冊時間: 2007-02-28 文章: 83
第 8 樓
|
發表於: 星期四 八月 07, 2014 3:39 pm 文章主題: |
|
|
CREATE CURSOR 表0 (公司 C(10), 橘子 I, 蘋果 I, 荔枝 I, 芭樂 I)
INDEX ON 公司 TAG 公司
FOR i = 1 TO 4
cAlias = "表" + TRANSFORM(i)
SELECT (cAlias)
cField = FIELD(2)
SET RELATION TO 公司 INTO 表0
SCAN
IF !FOUND("表0")
APPEND BLANK IN "表0"
REPLACE 表0.公司 WITH EVALUATE(cAlias + ".公司") IN "表0"
ENDIF
REPLACE ("表0." + cField) WITH EVALUATE("表0." + cField + " + " + cAlias + "." + cField) IN "表0"
ENDSCAN
SET RELATION TO
ENDFOR
SELECT 表0
BROWSE |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
sthuang66
註冊時間: 2014-04-27 文章: 171
第 9 樓
|
發表於: 星期六 八月 09, 2014 5:16 pm 文章主題: |
|
|
謝謝各位高手指教!我會一一試試 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
sthuang66
註冊時間: 2014-04-27 文章: 171
第 10 樓
|
發表於: 星期日 八月 10, 2014 1:56 am 文章主題: |
|
|
***********************************
create 表 5 (公司,橘子,蘋果,荔枝,芭樂)
append from 表1
append from 表2
append from 表3
append from 表4
************************************
以上這個方法不行 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
sthuang66
註冊時間: 2014-04-27 文章: 171
第 11 樓
|
發表於: 星期日 八月 10, 2014 2:01 am 文章主題: |
|
|
********************
換個方向思考試試!!
crea dbf aa (company c(10),mountA n(3),mountB n(3),mountC n(3))
inse into aa valu ('橘子',3,5,0)
inse into aa valu ('蘋菓',0,3,2)
.
.
.
copy to bb.xls type xl5 &&轉成excel
********************************************
這個方法與轉成Excel後直接剪貼差不多
公司數多就很辛苦
不過還是謝謝你的指導 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
sthuang66
註冊時間: 2014-04-27 文章: 171
第 12 樓
|
發表於: 星期日 八月 10, 2014 2:51 am 文章主題: |
|
|
***********************************
create 表 5 (公司,橘子,蘋果,荔枝,芭樂)
append from 表1
append from 表2
append from 表3
append from 表4
************************************
剛剛發現在加一行
select 公司,sum(橘子) as 橘子,sum(蘋果) as 蘋果,sum(荔枝) as 荔枝,sum(芭樂) as 芭樂 from 表5 group by 公司 into table 表0
如此就可以啦
感謝 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
lygcw9603
註冊時間: 2011-12-25 文章: 127
第 13 樓
|
發表於: 星期日 八月 10, 2014 4:23 pm 文章主題: |
|
|
Create Cursor T1 (公司 C(1),橘子 N(2))
Insert Into T1 Values ("A",5)
Insert Into T1 Values ("B",3)
Create Cursor T2 (公司 C(1),蘋果 N(2))
Insert Into T2 Values ("B",3)
Insert Into T2 Values ("C",2)
Create Cursor T3 (公司 C(1),荔枝 N(2))
Insert Into T3 Values ("A",3)
Insert Into T3 Values ("B",5)
Create Cursor T4 (公司 C(1),芭樂 N(2))
Insert Into T4 Values ("A",5)
Insert Into T4 Values ("C",3)
Select 公司 From T1 ;
Union Select 公司 From T2 ;
Union Select 公司 From T3 ;
Union Select 公司 From T4 Into Cursor Ks
Select A.公司,Nvl(橘子,0) 橘子,Nvl(蘋果,0) 蘋果,Nvl(荔枝,0) 荔枝,Nvl(芭樂,0) 芭樂;
FROM Ks A Left Join T1 B On A.公司==B.公司;
Left Join T2 C On A.公司==C.公司;
Left Join T3 D On A.公司==D.公司;
Left Join T4 E On A.公司==E.公司 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
sthuang66
註冊時間: 2014-04-27 文章: 171
第 14 樓
|
發表於: 星期三 八月 13, 2014 11:37 am 文章主題: |
|
|
------------------------------------------------
Select 公司 From T1 ;
Union Select 公司 From T2 ;
Union Select 公司 From T3 ;
Union Select 公司 From T4 Into Cursor Ks
Select A.公司,Nvl(橘子,0) 橘子,Nvl(蘋果,0) 蘋果,Nvl(荔枝,0) 荔枝,Nvl(芭樂,0) 芭樂;
FROM Ks A Left Join T1 B On A.公司==B.公司;
Left Join T2 C On A.公司==C.公司;
Left Join T3 D On A.公司==D.公司;
Left Join T4 E On A.公司==E.公司
---------------------------------------------------
這個方法也不錯!!!我已經試過!OK |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
sthuang66
註冊時間: 2014-04-27 文章: 171
第 15 樓
|
發表於: 星期三 八月 13, 2014 11:46 am 文章主題: |
|
|
-----------------------------------------
CREATE CURSOR 表0 (公司 C(10), 橘子 I, 蘋果 I, 荔枝 I, 芭樂 I)
INDEX ON 公司 TAG 公司
FOR i = 1 TO 4
cAlias = "表" + TRANSFORM(i)
SELECT (cAlias)
cField = FIELD(2)
SET RELATION TO 公司 INTO 表0
SCAN
IF !FOUND("表0")
APPEND BLANK IN "表0"
REPLACE 表0.公司 WITH EVALUATE(cAlias + ".公司") IN "表0"
ENDIF
REPLACE ("表0." + cField) WITH EVALUATE("表0." + cField + " + " + cAlias + "." + cField) IN "表0"
ENDSCAN
SET RELATION TO
ENDFOR
SELECT 表0
BROWSE
---------------------------------------------------------
這個方法不是SQL寫法我功力較低!!無法修正
我有把他轉成PRG直接執行 結果卡在
"SELECT (cAlias)" 這一行
錯誤訊息是 ailas '表1' is not found
但是我明明prg和表1,表2,表3,表4都在同一目錄
請高手指正!!!謝謝 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|