有一个表mj,
id 图号 数量 可借用图号
-- ----- ---- ----
1 A 2 NULL
2 B 1 NULL
3 C 1 B
4 D 1 B
5 E 2 C
6 F 1 A 有上面的一个表mj,可借用图号列是指与图号列相同的东西,是实物相同但编号不一样的东西,如上表,C、D可以借用B,C也可以借用D;E可以借用C,同是可以使用B、D。
想通过查询得出某个图号可以所有能借用的图号和数量。
如查C,可以列出可借用的图号,B、D、E,以及各自的数量和总数量。
查询如下表:
可借用图号 数量
---------- ----
B 1
D 1
E 2
id 图号 数量 可借用图号
-- ----- ---- ----
1 A 2 NULL
2 B 1 NULL
3 C 1 B
4 D 1 B
5 E 2 C
6 F 1 A 有上面的一个表mj,可借用图号列是指与图号列相同的东西,是实物相同但编号不一样的东西,如上表,C、D可以借用B,C也可以借用D;E可以借用C,同是可以使用B、D。
想通过查询得出某个图号可以所有能借用的图号和数量。
如查C,可以列出可借用的图号,B、D、E,以及各自的数量和总数量。
查询如下表:
可借用图号 数量
---------- ----
B 1
D 1
E 2
go
--> -->
if not object_id(N'mj') is null
drop table mj
Go
Create table mj([id] int,[图号] nvarchar(1),[数量] int,[可借用图号] nvarchar(1))
Insert mj
select 1,N'A',2,null union all
select 2,N'B',1,null union all
select 3,N'C',1,N'B' union all
select 4,N'D',1,N'B' union all
select 5,N'E',2,N'C' union all
select 6,N'F',1,N'A'
GoSELECT *
FROM mj AS a
WHERE EXISTS(SELECT 1 FROM mj WHERE [图号]='C' AND a.[可借用图号] IN([可借用图号],[图号]))/*
id 图号 数量 可借用图号
3 C 1 B
4 D 1 B
5 E 2 C
*/