回 帖 发 新 帖 刷新版面

主题:[讨论]请高手帮个忙!

工作中碰到这样的问题,急需解决,请好心的高手帮个忙。十分感谢!
表1:
    工作号  地点  天数
    07002   南京  5天
    07215   北京  4天
    07002   厦门  1天
    07002   南京  5天
要汇总得出
表2:
    工作号  南京  北京  厦门
    07002   2     0      1 
    07215   0     1      0

回复列表 (共4个回复)

沙发

如下代码仅供参考

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

板凳


感谢帮忙!
但发现运行以下语句时显示“变量太多”
DIME Tj(Num,4)

3 楼

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 楼

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 工作号

我来回复

您尚未登录,请登录后再回复。点此登录或注册