标题:再次求助:用update更新自身表字段
只看楼主
自强不西
Rank: 2
等 级:论坛游民
帖 子:125
专家分:22
注 册:2019-3-29
结帖率:68.75%
已结贴  问题点数:20 回复次数:20 
再次求助:用update更新自身表字段
货物名称    进货渠道    渠道等级    进货价    建议最高进货价
照相机             卡西欧                A            16000   
照相机             福士康                B            13000   
照相机              莱卡                A            18000   
高档手机      华为                B            11000   
高档手机      苹果                B            12000   

问题是:只要表中有A级渠道的货物,建议最高进货价为A级进货渠道进货价的最高值,如照相机的建议最高进货价为18000;没有A级渠道的货物,则选用B级渠道进货价的最高价作为建议最高进货价。
如果用update来做的话,得如何处理,麻烦各位高手给予指教!
搜索更多相关主题的帖子: update 更新 字段 手机 高价 
2019-07-05 14:47
自强不西
Rank: 2
等 级:论坛游民
帖 子:125
专家分:22
注 册:2019-3-29
得分:0 
我用如下语句更新“建议最高进货价”,结果老是出现“建议最高进货价”不能为null值
update 表名 set 表名.建议最高进货价=(select max(进货价) from 表名 a where 表名.货物名称==b.货物名称 and b.渠道等级=="A")
2019-07-05 15:05
自强不西
Rank: 2
等 级:论坛游民
帖 子:125
专家分:22
注 册:2019-3-29
得分:0 
2019-07-05 15:10
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:10 
上传表

坚守VFP最后的阵地
2019-07-05 18:40
自强不西
Rank: 2
等 级:论坛游民
帖 子:125
专家分:22
注 册:2019-3-29
得分:0 
版主您好!3楼即为具体的表格
2019-07-06 08:12
自强不西
Rank: 2
等 级:论坛游民
帖 子:125
专家分:22
注 册:2019-3-29
得分:0 
货物名称    进货渠道    渠道等级    进货价    建议最高进货价
照相机       卡西欧         A       16000   
照相机       福士康         B       13000   
照相机        莱卡          A       18000   
高档手机      华为          B       11000   
高档手机      苹果          B       12000   
2019-07-06 13:53
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
create cursor tt (货物名称 c(10), 进货渠道 c(10), 渠道等级 c(1), 进货价 n(10), 建议最高进货价 n(10))
insert into tt values ("照相机", "卡西欧", "A", 16000, 0)
insert into tt values ("照相机", "福士康", "B", 13000, 0)
insert into tt values ("照相机", "莱卡", "A", 18000, 0)   
insert into tt values ("高档手机", "华为", "B", 11000, 0)   
insert into tt values ("高档手机", "苹果", "B", 12000, 0)
select distinct 渠道等级 from tt into cursor tt1
if "A" $ 渠道等级
    UPDATE tt SET 建议最高进货价 = (SELECT MAX(进货价) jhj FROM tt WHERE 渠道等级 == "A") WHERE 渠道等级 == "A"
else
    UPDATE tt SET 建议最高进货价 = (SELECT MAX(进货价) jhj FROM tt WHERE 渠道等级 == "B") WHERE 渠道等级 == "B"
ENDIF
SELECT tt
browse

下次要上传DBF表

坚守VFP最后的阵地
2019-07-06 16:23
自强不西
Rank: 2
等 级:论坛游民
帖 子:125
专家分:22
注 册:2019-3-29
得分:0 
感谢版主!我现在搞不清楚,用如下语句更新“建议最高进货价”,结果老是出现“建议最高进货价”不能为null值的提示,麻烦您给看看。
update 表名 set 表名.建议最高进货价=(select max(进货价) from 表名 a where 表名.货物名称==b.货物名称 and b.渠道等级=="A")
2019-07-06 17:56
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用自强不西在2019-7-6 17:56:36的发言:

感谢版主!我现在搞不清楚,用如下语句更新“建议最高进货价”,结果老是出现“建议最高进货价”不能为null值的提示,麻烦您给看看。
update 表名 set 表名.建议最高进货价=(select max(进货价) from 表名 a where 表名.货物名称==b.货物名称 and b.渠道等级=="A")

别名为b的表在那

坚守VFP最后的阵地
2019-07-06 18:11
自强不西
Rank: 2
等 级:论坛游民
帖 子:125
专家分:22
注 册:2019-3-29
得分:0 
版主,刚刚我分析了下,按您写的这个代码,“照相机”的“建议最高进货价”为18000,是对的;但“高档手机”的“建议最高进货价”就会成了13000,这个结果就不对了,应该为12000才对,麻烦您再看看。
2019-07-06 18:15



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




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

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