• 主页
  • 基础类
  • 应用实例
  • 新技术前沿

求一个sql语句?请各位帮忙

songxing 2007-05-16 09:29:25
表结构:
subid subname paretnid
1001 现金科目 1001
10010 人民币 1001
1002 银行存款 1002

如果subid 和 parentid 相同则是一级科目反之是二级科目。
现在的问题是如何把所有的两级科目和没有两级科目的一级科目列出来。
...全文
102 点赞 收藏 5
写回复
5 条回复
songxing 2007年05月16日
多谢andy1995
回复 点赞
songxing 2007年05月16日
多谢libin_ftsafe(子陌红尘)
回复 点赞
拓狼 2007年05月16日
--产生测试数据
declare @t table(subid varchar(100), subname varchar(100), parentid varchar(100))


insert into @t select '1001', '现金科目', '1001'
union all select '10010', '人民币' , '1001'
union all select '1002' , '银行存款', '1002'
--解决方法
select * from @t a
where subid<>parentid
or subid=parentid
and not exists(select * from @t b
where b.subid<>b.parentid and a.subid=b.parentid)
回复 点赞
子陌红尘 2007年05月16日
declare @t table(subid int,subname varchar(10),paretnid int)
insert into @t select 1001 ,'现金科目',1001
insert into @t select 10010,'人民币 ',1001
insert into @t select 1002 ,'银行存款',1002

select
t.*
from
@t t
where
t.paretnid! = t.subid
or
not exists(select 1 from @t where paretnid=t.subid and paretnid!=subid)

/*
subid subname paretnid
----------- ---------- -----------
10010 人民币 1001
1002 银行存款 1002
*/
回复 点赞
子陌红尘 2007年05月16日
select
t.*
from
表 t
where
t.paretnid! = t.subid
or
not exists(select 1 from 表 where paretnid=t.subid and paretnid!=subid)
回复 点赞
发动态
发帖子
MS-SQL Server
创建于2007-09-28

1.4w+

社区成员

25.3w+

社区内容

MS-SQL Server相关内容讨论专区
社区公告
暂无公告