主题:[讨论]请高手帮个忙!
mengrenlin
[专家分:0] 发布于 2009-05-14 13:36:00
工作中碰到这样的问题,急需解决,请好心的高手帮个忙。十分感谢!
表1:
工作号 地点 天数
07002 南京 5天
07215 北京 4天
07002 厦门 1天
07002 南京 5天
要汇总得出
表2:
工作号 南京 北京 厦门
07002 2 0 1
07215 0 1 0
回复列表 (共4个回复)
沙发
sywzs [专家分:5650] 发布于 2009-05-15 12:13:00
如下代码仅供参考
SET PATH TO D:\ &&表1、表2 文件路径
SELECT 1
USE 表1
INDEX ON 工作号 TO sy UNIQ
COUNT TO Num
DIME Tj(Num,4)
GO TOP
i=1
FOR i=1 TO Num
Tj(i,1)=工作号
SKIP
NEXT FOR
SET INDEX TO
FOR i=1 TO Num
COUNT TO CS FOR 地点="南京" AND 工作号=Tj(i,1)
Tj(i,2)=CS
COUNT TO CS FOR 地点="北京" AND 工作号=Tj(i,1)
Tj(i,3)=CS
COUNT TO CS FOR 地点="厦门" AND 工作号=Tj(i,1)
Tj(i,4)=CS
NEXT
SELECT 2
USE 表2
FOR i=1 TO Num
APPEND BLANK
REPLACE 工作号 WITH Tj(i,1),南京 WITH Tj(i,2),北京 WITH Tj(i,3),厦门 WITH Tj(i,4)
NEXT
板凳
mengrenlin [专家分:0] 发布于 2009-05-18 13:50:00
感谢帮忙!
但发现运行以下语句时显示“变量太多”
DIME Tj(Num,4)
3 楼
sywzs [专家分:5650] 发布于 2009-05-18 19:25:00
VFP是支持二维数组的,不知道为什么会在你的电脑中出现参数过多的错误。我是在VFP6下运行的。我把程序改动了一下,你再看看吧!
SET PATH TO D:\ &&表1、表2 文件路径
SELECT 2
USE 表2
SELECT 1
USE 表1
INDEX ON 工作号 TO sy UNIQ
COUNT TO Num
DIME Tj(Num)
GO TOP
i=1
FOR i=1 TO Num
Tj(i)=工作号
SKIP
NEXT FOR
SET INDEX TO
FOR i=1 TO Num
COUNT TO njCS FOR 地点="南京" AND 工作号=Tj(i)
COUNT TO bjCS FOR 地点="北京" AND 工作号=Tj(i)
COUNT TO xmCS FOR 地点="厦门" AND 工作号=Tj(i)
sele 2
APPEND BLANK
REPLACE 工作号 WITH Tj(i),南京 WITH njCS,北京 WITH bjCS,厦门 WITH xmCS
sele 1
NEXT
4 楼
Vii [专家分:1130] 发布于 2009-05-18 22:39:00
select 工作号,sum(case 地点 when '南京' then 1 else 0 end) as 南京,sum(case 地点 when '北京' then 1 else 0 end) as 北京,sum(case 地点 when '厦门' then 1 else 0 end) as 厦门 from test group by 工作号
我来回复