Foxtable(狐表)用户栏目专家坐堂 → 修改了只读数据 是个什么错误啊


  共有1490人关注过本帖树形打印复制链接

主题:修改了只读数据 是个什么错误啊

帅哥哟,离线,有人找我吗?
instone
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:137 积分:1291 威望:0 精华:0 注册:2011/8/27 11:08:00
修改了只读数据 是个什么错误啊  发帖心情 Post By:2017/2/2 16:24:00 [只看该作者]

请教,出来红色!号,把鼠标放在!上,显示文字是“修改了只读数据”,

不明白这是出的什么错误呢,既然是只读数据,为何还能被修改,啥意思啊,

谢谢解答!


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/2 16:43:00 [只看该作者]

基本是数据库问题,你数据库那里是否设置了索引键?

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/2 16:46:00 [只看该作者]

你做什么操作出现此问题?多表连接查询?

 

多表查询往往用主键(如ID)做连接,这个字段存在在多个表中(主键或外键)

你的查询如果要返回这个字段,注意一下他的来源。


 回到顶部
帅哥哟,离线,有人找我吗?
instone
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:137 积分:1291 威望:0 精华:0 注册:2011/8/27 11:08:00
  发帖心情 Post By:2017/2/3 9:42:00 [只看该作者]

是多表查询,我发现是使用了case when 的字段会出现报错,请教是这样使用有错误还是查询表不支持case when 这种功能啊?

查询语句如下: 

s e l e c t   b.工厂,b.物料,b.物料描述,b.基本数量,b.BUn as 单位,b.组件 ,b.组件描述,b.数量 ,b.Un as 组件单位,b.MRP_组,m.物料类型,(case when m.物料类型='ROH' then  b.数量/b.基本数量 end ) as 原料克重 ,(case when m.物料类型='ROH' then  m.价格/m.价格单位 end ) as 原料克价,(case when m.物料类型='Z001' then  m.价格/m.价格单位 end ) as 包辅单价,(case when m.物料类型='ROH' then  m.价格/m.价格单位 end ) * b.数量 / b.基本数量 as 物料原料成本,(case when m.物料类型='Z001' then  m.价格/m.价格单位 end ) * b.数量 / b.基本数量 as 物料包辅成本,r.加工周期,r.机器折旧 as 机折系数 ,r.电  as 用电系数,(case when len(b.组件)>=13 and b.mrp_组='注塑半成品' then  bmj.模具编号 when len(b.组件)<13 and b.mrp_组='注塑半成品' then  bmj1.模具编号 else '' end ) as 模具编号 ,(case when len(b.组件)>=13 and b.mrp_组='注塑半成品' then  bmj.模具名称 when len(b.组件)<13 and b.mrp_组='注塑半成品' then  bmj1.模具名称 else '' end ) as 模具名称 ,(case when len(b.组件)>=13 and b.mrp_组='注塑半成品' then  bmj.模穴数 when len(b.组件)<13 and b.mrp_组='注塑半成品' then  bmj1.模穴数 else 0 end )  as 模穴数
,(case when len(b.组件)>=13 and b.mrp_组='注塑半成品' then  zmj.原始值 when len(b.组件)<13 and b.mrp_组='注塑半成品' then  zmj1.原始值 else 0 end )  as 模具原值
 ,b._identify ,b._locked from {sapbom} b

  left join {sapmaterial} m on b.工厂=m.工厂 and b.组件=m.物料
  left join {sapprdroute} r on b.工厂=r.工厂 and b.组件=r.物料
  left join {sap半成品模具} bmj on  substring(b.组件,1,8)=bmj.半成品编码
  left join {sap半成品模具} bmj1 on  substring(b.组件,1,4)= bmj1.半成品编码
  left join {sap模具原值}   zmj on bmj.模具编号=zmj.模具编号
  left join {sap模具原值}   zmj1 on bmj1.模具编号=zmj1.模具编号

where  m.物料类型='HALB'



图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/3 9:48:00 [只看该作者]

1、先把多个case when语句删除省下一个;

 

2、然后测试。把列名改一下,把case when的公式改一下,比如 除数为空值或者0的情况要避免。


 回到顶部
帅哥哟,离线,有人找我吗?
instone
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:137 积分:1291 威望:0 精华:0 注册:2011/8/27 11:08:00
  发帖心情 Post By:2017/2/5 8:22:00 [只看该作者]

原因找到了,是连接右表有多关键字重复行导致,改用s elect ... group by  先把右表做成唯一,就行了,非常感谢!

 回到顶部