| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1393 人关注过本帖
标题:sql update 无法更新 null?
只看楼主 加入收藏
lgp740401_72
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2014-4-17
结帖率:100%
收藏
 问题点数:0 回复次数:10 
sql update 无法更新 null?
sql update无法更新 null:
lcsql="update "+lc关联子表+" set "+入库字段+"="+入库字段+"+(select isnull(sum(isnull("+lc工资子表数据字段+",0)),0) from "+lc工资子表+" where RTRIM(LTRIM("+lc工资子表字段+"))='"+c单据PK+"'"+z原工资子表条件字段+lc条件+" group by "+lc工资子表依据字段+")  where RTRIM(LTRIM("+lc关联子表字段+"))='"+lc_jlsjh+"'"+z工资子表条件字段
------入库字段为数值型,想改为如下:
lcsql="update "+lc关联子表+" set "+入库字段+"="+isnull(入库字段,0)+"+(select isnull(sum(isnull("+lc工资子表数据字段+",0)),0) from "+lc工资子表+" where RTRIM(LTRIM("+lc工资子表字段+"))='"+c单据PK+"'"+z原工资子表条件字段+lc条件+" group by "+lc工资子表依据字段+")  where RTRIM(LTRIM("+lc关联子表字段+"))='"+lc_jlsjh+"'"+z工资子表条件字段
-----在VFP下报错:参数太多
想改为如下:
lcsql="update "+lc关联子表+" set "+入库字段+"="+nvl(入库字段,0)+"+(select isnull(sum(isnull("+lc工资子表数据字段+",0)),0) from "+lc工资子表+" where RTRIM(LTRIM("+lc工资子表字段+"))='"+c单据PK+"'"+z原工资子表条件字段+lc条件+" group by "+lc工资子表依据字段+")  where RTRIM(LTRIM("+lc关联子表字段+"))='"+lc_jlsjh+"'"+z工资子表条件字段
----在SQL上报错:nvl不是可认识的内置函数
大侠们,其它地方都没错,怎么改?
搜索更多相关主题的帖子: update null where 
2014-04-23 16:27
lgp740401_72
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2014-4-17
收藏
得分:0 
改为:lcsql="update "+lc关联子表+" set "+入库字段+"=isnull("+入库字段+",0)+(select sum(isnull("+lc工资子表数据字段+",0)) from "+lc工资子表+" where RTRIM(LTRIM("+lc工资子表字段+"))='"+c单据PK+"'"+z原工资子表条件字段+lc条件+" group by "+lc工资子表依据字段+")  where RTRIM(LTRIM("+lc关联子表字段+"))='"+lc_jlsjh+"'"+z工资子表条件字段


[ 本帖最后由 lgp740401_72 于 2014-4-24 09:06 编辑 ]
2014-04-23 16:45
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9824
专家分:27129
注 册:2012-2-5
收藏
得分:0 
要会逐步调试

坚守VFP最后的阵地
2014-04-23 17:38
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9824
专家分:27129
注 册:2012-2-5
收藏
得分:0 
以下是引用lgp740401_72在2014-4-23 16:45:45的发言:

改为:lcsql="update "+lc关联子表+" set "+入库字段+"=isnull("+入库字段+",0)+(select isnull(sum(isnull("+lc工资子表数据字段+",0)),0) from "+lc工资子表+" where RTRIM(LTRIM("+lc工资子表字段+"))='"+c单据PK+"'"+z原工资子表条件字段+lc条件+" group by "+lc工资子表依据字段+")  where RTRIM(LTRIM("+lc关联子表字段+"))='"+lc_jlsjh+"'"+z工资子表条件字段
命令、函数不明白的,多看帮助文件,不要张冠李戴

坚守VFP最后的阵地
2014-04-23 17:39
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9824
专家分:27129
注 册:2012-2-5
收藏
得分:0 
select isnull(sum(isnull("+lc工资子表数
这种写法烦不烦啊
我常说的一句话,先学走,再学跑。

坚守VFP最后的阵地
2014-04-23 18:00
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
看着眼花啊 最好简化下
2014-04-23 18:05
lgp740401_72
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2014-4-17
收藏
得分:0 
那就帮忙简化下
2014-04-24 09:04
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:653
专家分:2160
注 册:2014-2-7
收藏
得分:0 
原代码确实看得人眼花缭乱。变量名如“lc工资子表数据字段”等太长。“where rtrim(ltrim(……”改为“where 字段 like 字段值%”不是更好吗?

泉城飞狐
2014-04-24 12:10
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
“rtrim(ltrim(”不就等于“ALLTRIM”么?
2014-04-24 15:03
lgp740401_72
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2014-4-17
收藏
得分:0 
以下是引用taifu945在2014-4-24 15:03:05的发言:

“rtrim(ltrim(”不就等于“ALLTRIM”么?
sql认识ALLTRIM()?
2014-04-25 07:43
快速回复:sql update 无法更新 null?
数据加载中...
 
   



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

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