求查询sql。。急。。。

fengyuananan 2011-03-31 04:26:56
select * from dbo.Forbug_CRMH 这样的一句sql 查询来的 结果是:
ht_kmno ht_kmname stano
001001 交通费 1
001001001 公交费 1
001001001001 公交费01 1
001001002 打的费 1
001002 住宿费 1
001002001 小单间 1
001002002 大间 1
001002002001 大间01 1
001002003 房间
001002003001 房间01 1
001002003004 房间02 1
001003 报销费 1

要求的sql 是 :查询 没有子项(ht_kmno没有子项)的数据,现在这组数据,要的结果是:
kmno ht_kmname stano
ht_001001001001 公交费01 1
001001002 打的费 1
001002001 小单间 1
001002002001 大间01 1
001002003001 房间01 1
001002003004 房间02 1
001003 报销费 1

高手帮我看看,,,问题解决了,立马给分。。。
...全文
111 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengyuananan 2011-04-06
  • 打赏
  • 举报
回复
这个问题已经解决了,谢谢大家。。。
webdesign_seo 2011-03-31
  • 打赏
  • 举报
回复
ht_kmno ht_kmname stano
-------------------- ---------- -----------
001001001001 公交费01 1
001001002 打的费 1
001002001 小单间 1
001002002001 大间01 1
001002003001 房间01 1
001002003004 房间02 1
001003 报销费 1

(7 行受影响)
O爱咋咋地O 2011-03-31
  • 打赏
  • 举报
回复
我想错了,楼上发的代码错的
webdesign_seo 2011-03-31
  • 打赏
  • 举报
回复
if object_id('tb') is not null 
drop table tb
create table tb(ht_kmno varchar(20),ht_kmname varchar(10),stano int)
insert into tb values('001001' , '交通费', 1)
insert into tb values('001001001' , '公交费' ,1)
insert into tb values('001001001001', '公交费01', 1)
insert into tb values('001001002' , '打的费', 1)
insert into tb values('001002' , '住宿费', 1)
insert into tb values('001002001' , '小单间', 1)
insert into tb values('001002002' , '大间',1)
insert into tb values('001002002001', '大间01', 1)
insert into tb values('001002003' , '房间',1)
insert into tb values('001002003001', '房间01', 1)
insert into tb values('001002003004', '房间02', 1)
insert into tb values('001003' , '报销费', 1)
go
select * from tb
select * from tb a where not exists(select * from tb where charindex(a.ht_kmno,ht_kmno)>0 and len(a.ht_kmno)<len(ht_kmno))
O爱咋咋地O 2011-03-31
  • 打赏
  • 举报
回复

select b.* from (select max(len(ht_kmno)) as length,substring(ht_kmno,1,6) as ht_kmno from dbo.Forbug_CRMH group by substring(ht_kmno,1,6)) a join
dbo.Forbug_CRMH b on a.ht_kmno=substring(ht_kmno,1,6) and a.length=len(b.ht_kmno)

楼主试下
fengyuananan 2011-03-31
  • 打赏
  • 举报
回复
谢谢大家的热心帮助。。。问题解决了。。。真的很感谢。。。
我用的是三楼的。。。没问题。。。
我每个都测过了。。。。能用不能用的 ,我都谢谢大家啊。。。。呵呵。这就结贴三分。。。。
快溜 2011-03-31
  • 打赏
  • 举报
回复
create table tb(ht_kmno varchar(20),ht_kmname varchar(10),stano int)
insert into tb values('001001' , '交通费', 1)
insert into tb values('001001001' , '公交费' ,1)
insert into tb values('001001001001', '公交费01', 1)
insert into tb values('001001002' , '打的费', 1)
insert into tb values('001002' , '住宿费', 1)
insert into tb values('001002001' , '小单间', 1)
insert into tb values('001002002' , '大间',1)
insert into tb values('001002002001', '大间01', 1)
insert into tb values('001002003' , '房间',1)
insert into tb values('001002003001', '房间01', 1)
insert into tb values('001002003004', '房间02', 1)
insert into tb values('001003' , '报销费', 1)
go
select * from tb a
where (select count(1) from tb where charindex(a.ht_kmno,ht_kmno)>0)=1
/*
ht_kmno ht_kmname stano
-------------------- ---------- -----------
001001001001 公交费01 1
001001002 打的费 1
001002001 小单间 1
001002002001 大间01 1
001002003001 房间01 1
001002003004 房间02 1
001003 报销费 1
dawugui 2011-03-31
  • 打赏
  • 举报
回复
create table tb(ht_kmno varchar(20),ht_kmname varchar(10),stano int)
insert into tb values('001001' , '交通费', 1)
insert into tb values('001001001' , '公交费' ,1)
insert into tb values('001001001001', '公交费01', 1)
insert into tb values('001001002' , '打的费', 1)
insert into tb values('001002' , '住宿费', 1)
insert into tb values('001002001' , '小单间', 1)
insert into tb values('001002002' , '大间',1)
insert into tb values('001002002001', '大间01', 1)
insert into tb values('001002003' , '房间',1)
insert into tb values('001002003001', '房间01', 1)
insert into tb values('001002003004', '房间02', 1)
insert into tb values('001003' , '报销费', 1)
go

select t.* from tb t where not exists(select 1 from tb where t.ht_kmno <> ht_kmno and ht_kmno like t.ht_kmno + '%')

drop table tb

/*
ht_kmno ht_kmname stano
-------------------- ---------- -----------
001001001001 公交费01 1
001001002 打的费 1
001002001 小单间 1
001002002001 大间01 1
001002003001 房间01 1
001002003004 房间02 1
001003 报销费 1

(所影响的行数为 7 行)
*/
Rotel-刘志东 2011-03-31
  • 打赏
  • 举报
回复
select t.* from Forbug_CRMH t 
where not exists(select 1 from tb where ht_kmno like t.ht_kmno + '%')
AcHerat 元老 2011-03-31
  • 打赏
  • 举报
回复

select t.*
from Forbug_CRMH t
where ht_kmno not in (select ht_kmno from tb where charindex(t.ht_kmno,ht_kmno) > 0 and ht_kmno <> t.ht_kmno)
--小F-- 2011-03-31
  • 打赏
  • 举报
回复
select
*
from
Forbug_CRMH t
where
not exists(select 1 from tb where ht_kmno like t.ht_kmno + '%')
快溜 2011-03-31
  • 打赏
  • 举报
回复
select * from Forbug_CRMH a
where (select count(1) from Forbug_CRMH where charindex(a.ht_kmno,ht_kmno)>0)=1
AcHerat 元老 2011-03-31
  • 打赏
  • 举报
回复

select t.*
from Forbug_CRMH t
where not exists(select 1 from tb where ht_kmno like t.ht_kmno + '%')

dawugui 2011-03-31
  • 打赏
  • 举报
回复
select t.* from Forbug_CRMH t where not exists(select 1 from tb where ht_kmno like t.ht_kmno + '%')

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧