| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 766 人关注过本帖
标题:aei135版主,请进!关于《SQL视图中的空值如何参与运算?》的帖子
只看楼主 加入收藏
woboy
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2010-8-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
aei135版主,请进!关于《SQL视图中的空值如何参与运算?》的帖子
https://bbs.bccn.net/thread-319956-1-1.html这个帖子的问题至今一直未解决,能帮我看一下到底是什么问题吗?谢谢!!
搜索更多相关主题的帖子: aei SQL 视图 运算 帖子 
2010-10-28 17:06
筱晓绾
Rank: 10Rank: 10Rank: 10
来 自:湖南
等 级:贵宾
威 望:12
帖 子:512
专家分:1736
注 册:2010-9-1
收藏
得分:0 
aei135版主?难道不是他就不能进了么?呵呵,
2010-10-28 17:28
woboy
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2010-8-22
收藏
得分:0 
呵呵,可以可以,冒犯大家了。只是因为aei135版主帮我解决了问题,想请她继续帮忙!
2010-10-28 17:43
aei135
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:232
专家分:1176
注 册:2009-4-6
收藏
得分:0 
不是说试成功了吗?怎么成未解决了?你的标题可真挺搞笑的,呵呵!
2010-10-28 21:13
woboy
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2010-8-22
收藏
得分:0 
第一个问题是解决了!再加了新的语句后又出现新的问题了,还请多多指教!谢谢!
2010-10-30 00:11
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
等着吧!

★★★★★为人民服务★★★★★
2010-10-30 08:23
aei135
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:232
专家分:1176
注 册:2009-4-6
收藏
得分:0 
加了什么语句,出了什么问题了,没说清楚。
2010-10-30 14:50
woboy
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2010-8-22
收藏
得分:0 
引用早前帖子的内容:
新问题!昨天的问题解决了,谢谢版主们!今天再加了一个语句(红色字体)后出现错误提示!请教怎么回事?
SQL语句:
SELECT TOP 100 PERCENT BOM1.父件货号 AS A0, BOM1.父件货名 AS A0货名,
      BOM1.父件存货类型, BOM1.父件工序 AS A0工序, BOM1.子件货号 AS A1,
      BOM1.子件货名 AS A1货名, BOM1.子件工序 AS A1工序, BOM1.用量,
      BOM2.子件货号 AS A2, BOM2.子件货名 AS A2货名, BOM2.子件工序 AS A2工序,
      BOM3.子件货号 AS A3, BOM3.子件货名 AS A3货名, BOM3.子件工序 AS A3工序,
      BOM4.子件货号 AS A4, BOM4.子件货名 AS A4货名, BOM4.子件工序 AS A4工序,
      BOM5.子件货号 AS A5, BOM5.子件货名 AS A5货名, BOM5.子件工序 AS A5工序,
      BOM6.子件货号 AS A6, BOM6.子件货名 AS A6货名, BOM6.子件工序 AS A6工序,
      BOM7.子件货号 AS A7, BOM7.子件货名 AS A7货名, BOM7.子件工序 AS A7工序,
      LEFT(ISNULL(BOM1.父件货号 + '\', '') + ISNULL(BOM1.子件货号 + '\', '')
      + ISNULL(BOM2.子件货号 + '\', '') + ISNULL(BOM3.子件货号 + '\', '')
      + ISNULL(BOM4.子件货号 + '\', '') + ISNULL(BOM5.子件货号 + '\', '')
      + ISNULL(BOM6.子件货号 + '\', '') + ISNULL(BOM7.子件货号 + '\', ''),
      LEN(ISNULL(BOM1.父件货号 + '\', '') + ISNULL(BOM1.子件货号 + '\', '')
      + ISNULL(BOM2.子件货号 + '\', '') + ISNULL(BOM3.子件货号 + '\', '')
      + ISNULL(BOM4.子件货号 + '\', '') + ISNULL(BOM5.子件货号 + '\', '')
      + ISNULL(BOM6.子件货号 + '\', '') + ISNULL(BOM7.子件货号 + '\', '')) - 1) AS 工艺链,
      LEFT(ISNULL(BOM1.子件工序 + '\', '') + ISNULL(BOM2.子件工序 + '\', '')
      + ISNULL(BOM3.子件工序 + '\', '') + ISNULL(BOM4.子件工序 + '\', '')
      + ISNULL(BOM5.子件工序 + '\', '') + ISNULL(BOM6.子件工序 + '\', '')
      + ISNULL(BOM7.子件工序 + '\', ''), LEN(ISNULL(BOM1.子件工序 + '\', '')
      + ISNULL(BOM2.子件工序 + '\', '') + ISNULL(BOM3.子件工序 + '\', '')
      + ISNULL(BOM4.子件工序 + '\', '') + ISNULL(BOM5.子件工序 + '\', '')
      + ISNULL(BOM6.子件工序 + '\', '') + ISNULL(BOM7.子件工序 + '\', '')) - 1)
      AS 工序链
FROM dbo.wu_bom_no_工艺链 BOM7 RIGHT OUTER JOIN
      dbo.wu_bom_no_工艺链 BOM6 ON
      BOM7.父件货号 = BOM6.子件货号 RIGHT OUTER JOIN
      dbo.wu_bom_no_工艺链 BOM5 ON
      BOM6.父件货号 = BOM5.子件货号 RIGHT OUTER JOIN
      dbo.wu_bom_no_工艺链 BOM4 ON
      BOM5.父件货号 = BOM4.子件货号 RIGHT OUTER JOIN
      dbo.wu_bom_no_工艺链 BOM3 ON
      BOM4.父件货号 = BOM3.子件货号 RIGHT OUTER JOIN
      dbo.wu_bom_no_工艺链 BOM2 ON
      BOM3.父件货号 = BOM2.子件货号 RIGHT OUTER JOIN
      dbo.wu_bom_no_工艺链 BOM1 ON BOM2.父件货号 = BOM1.子件货号
ORDER BY BOM1.父件货号 DESC
错误提示:"substring函数传递了无效的length参数"

图片附件: 游客没有浏览图片的权限,请 登录注册


补充说明:“子件工序”列的内容为中文,而“货号”列的内容是数字加字符,
是因为格式不同的原因吗?

谢谢!

 

2010-10-30 15:34
aei135
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:232
专家分:1176
注 册:2009-4-6
收藏
得分:20 
这个错误应该是因为LEN(ISNULL(BOM1.子件工序 + '\', '')
      + ISNULL(BOM2.子件工序 + '\', '') + ISNULL(BOM3.子件工序 + '\', '')
      + ISNULL(BOM4.子件工序 + '\', '') + ISNULL(BOM5.子件工序 + '\', '')
      + ISNULL(BOM6.子件工序 + '\', '') + ISNULL(BOM7.子件工序 + '\', ''))-1 的结果为负数导致的,
可以将红色标注的地方替换为:
      LEFT(ISNULL(BOM1.子件工序 + '\', '') + ISNULL(BOM2.子件工序 + '\', '')
      + ISNULL(BOM3.子件工序 + '\', '') + ISNULL(BOM4.子件工序 + '\', '')
      + ISNULL(BOM5.子件工序 + '\', '') + ISNULL(BOM6.子件工序 + '\', '')
      + ISNULL(BOM7.子件工序 + '\', ''), CASE WHEN LEN(ISNULL(BOM1.子件工序 + '\', '')
      + ISNULL(BOM2.子件工序 + '\', '') + ISNULL(BOM3.子件工序 + '\', '')
      + ISNULL(BOM4.子件工序 + '\', '') + ISNULL(BOM5.子件工序 + '\', '')
      + ISNULL(BOM6.子件工序 + '\', '') + ISNULL(BOM7.子件工序 + '\', '')) - 1>=0
      THEN LEN(ISNULL(BOM1.子件工序 + '\', '')
      + ISNULL(BOM2.子件工序 + '\', '') + ISNULL(BOM3.子件工序 + '\', '')
      + ISNULL(BOM4.子件工序 + '\', '') + ISNULL(BOM5.子件工序 + '\', '')
      + ISNULL(BOM6.子件工序 + '\', '') + ISNULL(BOM7.子件工序 + '\', '')) - 1 ELSE 0 END)
      AS 工序链
2010-11-01 10:03
woboy
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2010-8-22
收藏
得分:0 
终于解决!谢谢aei135,谢谢
2010-11-03 10:11
快速回复:aei135版主,请进!关于《SQL视图中的空值如何参与运算?》的帖子
数据加载中...
 
   



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

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