| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2009 人关注过本帖
标题:对数据类型而言运算符无效。运算符为 boolean AND,类型为 varchar。
只看楼主 加入收藏
hyz00001
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:137
注 册:2012-10-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
对数据类型而言运算符无效。运算符为 boolean AND,类型为 varchar。
下面是我的代码,估计是第六行有错误,却不知道怎么样进行修改

t6.fname  & '调入' & t4.fname & '调出' 调入仓库, 这一行代码中的t6.fname 或者t4.fname 都有为null的可能性。



select
t1.fbillno 单号,
t1.fdate 审核日期,
isnull(isnull(t13.fname,t12.fname),t14.fname) 客户_供应商,
isnull(t6.fname,t4.fname) 仓库,
t6.fname  & '调入' & t4.fname & '调出' 调入仓库,
t4.fname 调出仓库,
t3.fnumber 料号,
T2.fqty 数量,
t5.fbillname
from icstockbill t1
left join icstockbillentry t2 on t1.finterid =t2.finterid
left join t_icitem t3 on t2.fitemid =t3.fitemid
left join t_stock t4 on t2.FSCStockID=t4.fitemid
left join t_stock t6 on t2.fdcstockid =t6.fitemid
left join ICBillNo t5 on t1.ftrantype =t5.fbillid
left join t_Supplier t13 on t1.FSupplyID = t13.FItemID
left join t_Organization t12 on t1.FSupplyID = t12.FItemID
left join t_Department t14 on t1.fdeptid =t14.fitemid
where t1.fdate between '2014-3-1' and '2014-3-31'
--and t5.fbillname like'仓库调拨单据'
--and year(t1.fdate)=2014 and month(t1.fdate)=4
--and t3.fnumber ='01.11.001940'
order by t1.fdate
搜索更多相关主题的帖子: 供应商 可能性 null 仓库 
2014-04-22 20:32
hyz00001
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:137
注 册:2012-10-5
收藏
得分:0 
t6.fname  & '调入' & t4.fname & '调出' 调入仓库,
这一行的意思就是针对调拨入库单据,显示从第一个仓库调入另外一个仓库,而如果其中有一个仓库为null,那么只显示那个不为null的仓库。
2014-04-22 20:34
hyz00001
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:137
注 册:2012-10-5
收藏
得分:0 
经过查找发现可以用下面这一行代码:
t4.fname+'To'+t6.fname,

可是如果t4.fname 或者t6.fname 中有一个的数值为null时将会整个字段呈现null.
看看有没有办法解决的。
我自己想到下面这个,一直提示错误:“服务器: 消息 170,级别 15,状态 1,行 5 第 5 行: '=' 附近有语法错误。”
--iif((t6.fname = 'NULL' OR t4.fname ='NULL'),t4.fname+'To'+t6.fname,,isnull(t6.fname,t4.fname)) 仓库,
2014-04-23 08:46
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:20 
'NULL'---不加引号吧
2014-04-23 09:22
hyz00001
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:137
注 册:2012-10-5
收藏
得分:0 
我自己找到解决方案了,虽然花费了不少时间。
看看有木有比较基础的书籍可以参考的。
isnull(T4.fname,'') +case when t5.fbillname='仓库调拨单据' then ' To 'else '' end + isnull( t6.fname,'')仓库,
2014-04-23 09:27
快速回复:对数据类型而言运算符无效。运算符为 boolean AND,类型为 varchar。
数据加载中...
 
   



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

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