| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 881 人关注过本帖
标题:希望得到您的帮助
只看楼主 加入收藏
dancingbird
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-3-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
希望得到您的帮助
我现在有个企业数据库见附件!
数据中有4个变量,企业代码、行业、产值、产值频率(即各企业产值占所属行业的比率)。目前每个行业的企业已经按产值大小进行了排序
 
我的目的是希望找出各行业里累积产值(按照企业产值从大到小累积)达到全行业产值的50%的那些企业,把这些企业导出可以,给一个标示也可以。谢谢!
data.rar (1.54 KB)
搜索更多相关主题的帖子: 数据库 标示 行业 
2010-03-24 18:43
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:10 
USE data
COPY STRUCT TO new
SELECT 行业,COUNT(*)/2 FROM data INTO ARRAY a GROUP BY 行业
FOR i=1 TO ALEN(a,1)
    INSERT INTO new SELECT * top (a(i,2)) FROM data WHERE 行业=a(i,1) order by 产值 desc
ENDFOR
SELECT new
BROWSE

★★★★★为人民服务★★★★★
2010-03-24 19:48
dancingbird
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-3-24
收藏
得分:0 
回复 楼主 dancingbird
谢谢
2010-03-24 20:22
dancingbird
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-3-24
收藏
得分:0 
回复 2楼 cnfarer
cnfarer,你好!
谢谢你的答复,但是刚刚的回答可能还有些问题,我还要继续请教,你的程序找到的是每个行业前1/2的qiye,
而我希望找到的是各行业企业的产值进行累加,比如说行业1,产值最多的企业+产值次多的企业+产值第3夺得企业。。。。直到这些企业累加起来的产值达到该行业总产值的50%,停止,然后把这些企业导出来。
谢谢,希望我这次说清楚了。
在线等你的回复
2010-03-24 22:19
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:10 
代码如下(9.0版本):

sele *,recn() vvn from data into curs tmp readw
sele tmp.*, (sele sum(1) from tmp k where k.行业=tmp.行业 .and.k.vvn<=tmp.vvn) nn from tmp into curs tmp1 readw
sele tmp1.*, (sele sum(产值频率) from tmp1 k where k.行业=tmp1.行业 .and.k.nn<=tmp1.nn) as 累加 from tmp1 into curs tmp
sele tmp.nn 业内排位, tmp.代码,tmp.行业,tmp.产值,tmp.产值频率,tmp.累加 from tmp  inne join;
    ( sele 行业,cnt(*) tj from tmp where 累加<0.5 grou by 行业 ) k on tmp.行业=k.行业.and.tmp.nn<=k.tj+1

测试结果图示:
图片附件: 游客没有浏览图片的权限,请 登录注册




[ 本帖最后由 茵梦湖 于 2010-3-25 01:29 编辑 ]
2010-03-25 01:26
dancingbird
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-3-24
收藏
得分:0 
回复 5楼 茵梦湖
谢谢你!我马上试验一下!
2010-03-25 02:03
dancingbird
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-3-24
收藏
得分:0 
回复 5楼 茵梦湖
样本库试验成功了,我的企业数据库一共有20多万家企业,所以跑起来很慢,running......
2010-03-25 21:25
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:0 
以下是引用dancingbird在2010-3-25 21:25:42的发言:

样本库试验成功了,我的企业数据库一共有20多万家企业,所以跑起来很慢,running......


要么 用死办法(代码如下), 速度比5楼代码约快45倍~

clea
? " (行业)-"
clos all
sele *,0.000 tj from data into curs tj readw
   use in data
lsc="???"
scan
   if 行业<>lsc
      lsc=行业
      ls =0
      ?? lsc +"  "
   endif
   if ls<0.5
      ls =ls+产值频率
      repl tj with ls
   else
      loca rest for 行业<>lsc
      skip -1
   endif      
endscan      
copy to tj for tj>0
retu

收到的鲜花
  • Tiger53922010-03-28 17:02 送鲜花  15朵   附言:我很赞同
2010-03-27 00:02
dancingbird
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-3-24
收藏
得分:0 
回复 8楼 茵梦湖
呜呜,你不早说,我用了3天时间终于弄完了,8年的数据每年20多万家企业,

不过还是要谢谢你!
2010-03-28 16:45
快速回复:希望得到您的帮助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023108 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved