注册 登录
编程论坛 SQL Server论坛

like用法的问题

fxdf 发布于 2010-09-04 18:09, 825 次点击
请教一下,这个语句执行数据不准确,问题出在
where fboug1 like '%片迪%',含有这两个字的数据不能都被统计。而只用'%迪%个字时却正确',而实际数据中都是“片迪爱生”,为什么呢?

SELECT cm_address 姓名,累计数量 from  (select fcm_id,sum(fqty) 累计数量 from gm where fboug1 like '%片迪%' GROUP BY fcm_id) b left join
 cm on b.fcm_id=cm.cm_id


而只执行这个却能正确 select fcm_id,sum(fqty) 累计数量 from gm where fboug1 like '%片迪%' GROUP BY fcm_id

请高手帮忙看看,多谢了
9 回复
#2
qingshuiliu2010-09-05 07:51
按你说的的确很奇观,不过,你试试看看
like '%片迪爱生%' 和 like '%片迪%' 是否相同?

#3
tangyunzhong2010-09-05 11:22
回复 楼主 fxdf
这个问题是你的left join on造成的。你先执行SELECT cm_address 姓名,累计数量 from  (select fcm_id,sum(fqty) 累计数量 from gm where fboug1 like '%片迪%' GROUP BY fcm_id)这个语句,看所有的数据是不是正确的,要是正确就是你的left join on出问题。这些都是很容易查出来的,你要是方便就给数据库给我,我帮你写。

[ 本帖最后由 tangyunzhong 于 2010-9-5 11:27 编辑 ]
#4
fxdf2010-09-05 13:39
请教angyunzhong
SELECT cm_address 姓名,累计数量 from  (select fcm_id,sum(fqty) 累计数量 from gm where fboug1 like '%片迪%' GROUP BY fcm_id)是正确的,
cm表中cm_id和上面查询出的表的fcm_id连接,显示cm表中的cm_address ,请教应如何写
#5
fxdf2010-09-05 15:22
现在发现where fboug1 like '%片迪%'
含有的字符是一个字时正确,是字段的最后2个字时正确,是中间2个字不正确,是前2个也不正确
#6
fxdf2010-09-05 15:24
如果查询的是字段的后三个字也无结果
#7
tangyunzhong2010-09-06 09:32
回复 楼主 fxdf
你还是发数据库给我吧,我帮你弄,是你写的语句出问题的。
联系方式:
QQ:876766735
#8
qingshuiliu2010-09-06 14:18
的确很奇怪的问题
#9
smiledan2010-09-06 16:06

SELECT cm_address 姓名,累计数量 from  (select fcm_id,sum(fqty) 累计数量 from gm where fboug1 like '%片迪%' GROUP BY fcm_id) b left join
cm on b.fcm_id=cm.cm_id

应该是外面from的附近有问题,查的数据先放到表b中,但是表b中只有两个字段(fcm_id,sum(fqty) 累计数量),而外面搜索的内容是从表b中搜索的,“cm_address 姓名,累计数量”这两个字段在表b中没有,所以会查不到
#10
fxdf2010-09-06 18:04
姓名是从cm表中取的,表b和cm关联b.fcm_id=cm.cm_id
1