标题:再次求助:用update更新自身表字段
只看楼主
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用自强不西在2019-7-6 13:53:12的发言:

货物名称    进货渠道    渠道等级    进货价    建议最高进货价
照相机       卡西欧         A       16000   
照相机       福士康         B       13000   
照相机        莱卡          A       18000   
高档手机      华为          B       11000   
高档手机      苹果          B       12000   

我是按你提供的数据写代码的

坚守VFP最后的阵地
2019-07-06 18:33
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:10 
建议楼主提问题是将表发上来,如果有需要保密的数据可以用随机数修改一下。不要只发图片上来,让别人重新构造表。

dBase有人接盘了。
2019-07-06 21:14
自强不西
Rank: 2
等 级:论坛游民
帖 子:125
专家分:22
注 册:2019-3-29
得分:0 
不好意思,写错了。公式是
update 表名 set 表名.建议最高进货价=(select max(进货价) from 表名 a where 表名.货物名称==a.货物名称 and a.渠道等级=="A")
2019-07-07 15:50
自强不西
Rank: 2
等 级:论坛游民
帖 子:125
专家分:22
注 册:2019-3-29
得分:0 
hwjgb.rar (613 Bytes)
2019-07-08 15:23
自强不西
Rank: 2
等 级:论坛游民
帖 子:125
专家分:22
注 册:2019-3-29
得分:0 
hwjgb.rar (614 Bytes)
2019-07-09 18:35
自强不西
Rank: 2
等 级:论坛游民
帖 子:125
专家分:22
注 册:2019-3-29
得分:0 
版主,各位路过的高人,麻烦再给看看这个问题吧。
2019-07-09 18:36
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:0 

没有A级渠道,所以为空了。

dBase有人接盘了。
2019-07-09 19:48
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:565
专家分:1668
注 册:2017-7-16
得分:0 


CLOSE TABLES ALL
CLEAR
USE hwjgb ALIAS hwjgb
SELECT hwjgb
DIMENSION abc(1,1)
SELECT hwmc DISTINCT FROM hwjgb INTO ARRAY abc
FOR i=1 TO ALEN(abc)
SET FILTER TO hwmc=abc(i)
BROWSE
CALCULATE CNT(jhj),MAX(jhj) TO cnt_a,max_a FOR UPPER(qddj)="A"
CALCULATE CNT(jhj),MAX(jhj) TO cnt_b,max_b FOR UPPER(qddj)="B"
IF cnt_a>0
REPLACE zgjhzdj WITH max_a all
ELSE
REPLACE zgjhzdj WITH max_b all
ENDIF
ENDFOR
SELECT hwjgb
SET FILTER TO
GO top
BROWSE
close table all

2019-07-10 09:45
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:0 
程序代码:
CLOSE TABLES all
SELECT distinct hwmc FROM hwjgb INTO CURSOR hwtmp
FOR i=1 TO RECCOUNT()
    SELECT hwtmp
    GO i
    phwmc=ALLTRIM(hwmc)
    SELECT qddj,jhj FROM  hwjgb WHERE ALLTRIM(hwmc)==phwmc ORDER BY qddj,jhj DESC INTO CURSOR jgtmp
    GO TOP IN jgtmp
    REPLACE zgjhzdj WITH jgtmp.jhj for ALLTRIM(hwmc)==phwmc IN hwjgb
ENDFOR

dBase有人接盘了。
2019-07-10 12:59
自强不西
Rank: 2
等 级:论坛游民
帖 子:125
专家分:22
注 册:2019-3-29
得分:0 
感谢“gs2536785678”!感谢“xuminxz”!
我把问题想简单了,以为一个UPDATE语句就能解决问题。
2019-07-10 14:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-495705-1-1.html




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

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