现有A表数据,字段为:
no,upno,lev
11 22 1
22 33 2
33 44 3 现在我想取数据11 33 1的数据如何写sql语句啊?
11 44 1 呢?
谢谢啦
no,upno,lev
11 22 1
22 33 2
33 44 3 现在我想取数据11 33 1的数据如何写sql语句啊?
11 44 1 呢?
谢谢啦
解决方案 »
- 100分在线等高手,一个SQL查询问题!
- sql server2005,怎么在资源管理器里 手动添加触发器啊?
- sql server2005 连接到服务器上提示18456错误
- 请大家帮忙看看!
- 该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务?
- 数据库异地备份的问题- 邹建老大请进
- 已经声明了,为什么还提示“必须声明变量@Num”
- 一个基础问题
- 百思不得其解:最简单的update经常不起作用!
- 字段中数据格式转换问题
- 怎么样看待各表之间的关系?我在数据导入的时候由于设置了很多关系和约束以及触发,导致很不方便!
- 我用VB+SQL SERVER,我想在本地机上完整的再即时保存一个与服务器端结构完全相同的数据库,记录多少可以只是本地机上的记录数据,也可以是与服务器端完全相同的所有记录数据,如何在VB中用SQL语句实现。
from
(
select no,0 as upno,lev from A where no=11
union
select 0 as no,upno,0 as lev from A where upno=33
) as tb出来的结果就是11 33 1把33换成44就是11 44 1
楼主自己想出来的算法吧?
既然这样,那结果就是:
select 11,33,1
呵呵```
我有表A,字段no部门,upno上级部门,level级别
表内容:11 22 1(11部门的上级部门是22,11部门的级别是1级)
aa 22 1
22 33 2
bb 33 2
33 44 3
现在我想将表A的数据重新整合一下,将3级部门不变,2级也不动,1级的关连到上级部门的上级,表B 与A机构一样。
也就是结果如下:
11 33 1
aa 33 1
22 33 2
bb 33 2
33 44 3
不知道大家明白没有?
[No] nchar(10) ,
[UpNo] nchar(10),
[Level] int )
GOInsert Test ([No],[UpNo],[Level])
Select '11', '22', 1
Union Select 'aa', '22', 1
Union Select '22', '33', 2
Union Select 'bb', '33', 2
Union Select '33', '44', 3 Update Test Set Test.UpNo = (Select Test.UpNo
From (Select Distinct UpNo From Test Where Level=1) a,
Test Where a.UpNo = Test.No)
Where Exists( Select a.UpNo
From (Select Distinct UpNo From Test Where Level=1) a,
Test Where a.UpNo = Test.No)
And Test.Level = 1 --drop table Test
--按结果写
declare @T TABLE ( [No] nchar(10) , [UpNo] nchar(10), [Level] int ) Insert @T ([No],[UpNo],[Level])
Select '11', '22', 1
Union Select '22', '33', 2
Union Select '33', '44', 3
select
distinct t.No,t2.UPNO,t.Level
from
@T t join @T t2 on t.NO<>t2.No
where
T.No='11'
(所影响的行数为 3 行)No UPNO Level
---------- ---------- -----------
11 33 1
11 44 1(所影响的行数为 2 行)
Select '11', '22', 1
Union Select '22', '33', 2
Union Select '33', '44', 3
select
t.No,t2.UPNO,t.Level
from
@T t join @T t2 on t.[Level]=t2.[Level]-1
where
T.No='11'
select
t.No,
t2.UPNO,
t.Level
from
@T t ,@T t2
where
T.No='11' and not exists(select 1 from @T where [Level]>t2.[Level])
/*(所影响的行数为 3 行)No UPNO Level
---------- ---------- -----------
11 33 1(所影响的行数为 1 行)No UPNO Level
---------- ---------- -----------
11 44 1(所影响的行数为 1 行)
*/