Может быть, я неправильно понял ваш вопрос ...
Вы хотите применить эти фильтры в FilterTable1 к значениям таблицы ValueTable2, правильно?
делать и состояние ... с фильтрами ..
, чтобы определить, что заполнить все Код ссылки условия .. я прав? или неправильно понял в этот момент?
и этот RefNo ссылается на таблицу ValueTable1, правильно? или я неправильно понял?
если я undestood право
может попробовать что-то вроде этого ...
create table ##ValueTable1 (id int , name varchar)
insert into ##ValueTable1
values (1,'X'),(2,'Y')
create table ##ValueTable2 (id int , RefNo int, Property nvarchar(max),value int)
insert into ##ValueTable2
values
(1 , 1 ,'P1', 500),
(2 , 1 ,'P2', 300),
(3 , 1 ,'P3', 200),
(4 , 2 ,'P1', 250),
(5 , 2 ,'P2', 100),
(6 , 2 ,'P3', 200)
create table ##FilterTable1 (id int, Property nvarchar(max),Operator nvarchar(max) , value int)
insert into ##FilterTable1
values
(1,'P1','>', 100),
(1,'P2','=', 300),
(1,'P3','<>',100)
declare @sql nvarchar(max)
set @sql = ''
select @sql = @sql + ' intersect select RefNo from ##ValueTable2 where Property = ''' +Property+''' and value '+Operator+CAST(value as varchar(max))
from ##FilterTable1
where id = 1
set @sql = 'select * from ##ValueTable1 T inner join ('+STUFF(@sql,1,10,'') +')V on V.RefNo = T.id'
--just stuff @sql if ##ValueTable1 doesnt matter
--set @sql = STUFF(@sql,1,10,'')
exec(@sql)
drop table ##ValueTable2
drop table ##FilterTable1
drop table ##ValueTable1
мой ResultSet достижимого ...
id name RefNo
1 X 1
Спасибо за ваш ответ. Я знаю, как выполнить его, но я не мог создать query.Filter строк таблицы должны быть AND пункт, когда – user1624185
Я отредактировал свой ответ, надеюсь, что это поможет. – YvesR
2nd edit: @value должен быть varchar, поэтому я CAST() значение – YvesR