when we're going to use filters on the openquery select syntax It's important to take into account that filters can not be inside the string parameter cause it causes conflicts, instead you must place parameters outside the openquery function, and it's better practice to use aliases for the return of the openquery, Also you have to take into account that what you are returning on openquery is like a logical table so if you are returning a select from some tables it ist better to name all the result with an alias name.
Ex:
Select QUERY.* from openquery(LinkedServerName, ' select tableA.row2 as R1,tableB.row1 as R2 from schema.tableA inner join schema.tableB on tableA.row1=tableB.row1') as QUERY
where QUERY.R1 = @var1
and QUERY.R2 = @var2
That's not compLex and helps you to understand how to use aliases, and the reasson why is 'cause it's more understandable in the way you know which row and wich table exactlly you're refering to.
Hope it can be useful for community.
David Estrella Maldonado.
Quito - Ecuador