标题: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
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
要会逐步调试

坚守VFP最后的阵地
2014-04-23 17:38
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册: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
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册: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
帖 子:649
专家分:2156
注 册: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



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




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

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