| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 923 人关注过本帖
标题:求助!!使用select 语句查询时,生成的新表某一字段值为所对应的另一表的不 ...
只看楼主 加入收藏
bldf
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2014-10-23
结帖率:0
收藏
已结贴  问题点数:10 回复次数:15 
求助!!使用select 语句查询时,生成的新表某一字段值为所对应的另一表的不确定字段值,如何查询。
表一字段名
商品编号、规格
表二字段名
商品编号、z10、 z20、 z30、 z40
生成后的表三
商品编号,规格,单价
现有
表一
商品编号、规格
001       z10
002       z40
003       z10
002       z20
002       z10
表二
商品编号     z10     z20     z30     z40
001          100     200     300     400
002          110     210     310     410
003          100     300     310     400
004          200     200     300     300
想用一条select查询生成如下表三:
商品编号     规格      单价
001          z10       100
002          z40       410
003          z10       100
002          z20       210
002          z10       110
1、以表一内容为主添加单价列
2、单价的值为表一规格的值所对应的表二中的字段名的值。
3、表一与表二关键字为商品编号
求助,谢谢!
搜索更多相关主题的帖子: 规格 如何 
2015-07-28 13:20
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:2 
楼主是眼高手低啊
不知道楼主的VFP版本是多少,VFP6是做不到的,VFP9可以做到(如果表一只有两个字段,VFP9也做不到一句)
图片附件: 游客没有浏览图片的权限,请 登录注册



前提是表一中有单价

[ 本帖最后由 sdta 于 2015-7-28 14:00 编辑 ]

坚守VFP最后的阵地
2015-07-28 13:37
bldf
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2014-10-23
收藏
得分:0 
vf6.0
select 表一.商品编号,表一.规格,0000000000.00 as 单价,表二.* from 表一 ;
left outer join 表二 on allt(表一.商品编号)==allt(表二.商品编号) into table lsb
for i=1 to reccount()
  go i
  th="replace 单价 with "+allt(规格)
  &th
next
select 商品编号,规格,单价 from lsb
这是我目前的做法。存在一个问题,如果表一有10000条记录速变会非常慢。
2015-07-28 14:21
bldf
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2014-10-23
收藏
得分:0 
回复 2楼 sdta
如果表二中的字段有20多个一直连下去。还是会很麻烦的。
2015-07-28 14:27
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:2 
数据库设置的不规范吧?为什么要设置这么复杂的?
表二设置的不好?为了减少表二的记录数?
2015-07-28 15:40
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:2 
用一条select查询生成表速度慢的话
试试这样:
SELECT 表二
INDEX ON 商品编号 TAG 商品编号
SELECT 商品编号, 规格, 000 单价 FROM 表一 INTO CURSOR 表三 READWRITE
SELECT 表三
SET RELATION TO 商品编号 INTO "表二"
REPLACE 表三.单价 WITH EVALUATE("表二." + 表三.规格) ALL
SET RELATION TO
BROWSE
2015-07-28 15:55
fyyylyl
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:313
专家分:820
注 册:2006-5-22
收藏
得分:2 
表一存在的意义是什么?

2015-07-28 16:22
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
他是把表一的规格的记录,转到表二的字段,

感觉没必要,这样设置。
不知道各位大神的看法怎么样。
2015-07-28 16:29
bldf
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2014-10-23
收藏
得分:0 
表一可以理解为销售表,表二理解为对应规格的单价.
同一种商品有不同的规格而每一种规格又会有不同的价钱。
所以采用表二的结构。

[ 本帖最后由 bldf 于 2015-7-28 18:27 编辑 ]
2015-07-28 18:07
hepingfly
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:195
专家分:657
注 册:2015-5-21
收藏
得分:2 
表1没用处的。只用一张表2,不用 sql 查询,速度倒是快些。(如果表2的字段数为 n 个) vfp9.0
 close all
 select 商品编号,SPACE(20) as 规格,ROUND(val(SPACE(6)),0) as 单价 from 表2 ;
 into cursor spb where RECNO()<0 readwrite     
 sele 表2
 nss=AFIELDS(kk,'表2')
 go top
 scan
     cspbh=ALLTRIM(商品编号)
     for nn=2 to nss
         ndj=&kk(nn,1)
         insert into spb values(cspbh,kk(nn,1),ndj)
     endfor     
  endscan
 
  select spb
  browse
 

星际花草
2015-07-28 18:28
快速回复:求助!!使用select 语句查询时,生成的新表某一字段值为所对应的另一 ...
数据加载中...
 
   



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

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