34,591
社区成员
发帖
与我相关
我的任务
分享
--目前查询方式
SELECT 单别,单号,元件品号
FROM A2
WHERE
( 元件品号 IN
(
select RIGHT(规格,2)
FROM A1
WHERE 库存数量>0
)
OR
元件品号 IN
(
select LEFT(规格,2)
FROM A1
WHERE 库存数量>0
)
)
--> 测试数据:#ta
if object_id('tempdb.dbo.#ta') is not null drop table #ta
go
create table #ta([品号] varchar(8),[品名] varchar(8),[规格] varchar(5),[库存数量] int)
insert #ta
select '组合物料','主板+CPU','A1,A2',100
--> 测试数据:#tb
if object_id('tempdb.dbo.#tb') is not null drop table #tb
go
create table #tb([单别] varchar(5),[单号] int,[元件品号] varchar(2))
insert #tb
select 'IT001',201203001,'A1' union all
select 'IT001',201203001,'A2'
--------------开始查询--------------------------
select * from #ta a,#tb b where ','+[规格]+',' like '%,'+[元件品号]+',%'
--or
select * from #ta a,#tb b where charindex(','+[元件品号]+',',','+[规格]+',')>0
/*
品号 品名 规格 库存数量 单别 单号 元件品号
-------- -------- ----- ----------- ----- ----------- ----
组合物料 主板+CPU A1,A2 100 IT001 201203001 A1
组合物料 主板+CPU A1,A2 100 IT001 201203001 A2
(2 行受影响)
*/
select * from #ta a,#tb b where ','+[规格]+',' like '%,'+[元件品号]+',%'
--or
select * from #ta a,#tb b where charindex(','+[元件品号]+',',','+[规格]+',')>0