Вы должны указать имя поля, когда говорите «не в», например:
select PT.PcbId
from dbo.DeviceTrace DT INNER Join dbo.PcbTrace PT
on DT.CompId = '101125937' and DT.DeviceID = PT.DeviceID
<b>and [fieldName] not in</b>
(select PB.PcbId
from dbo.DeviceTrace DT INNER Join dbo.PcbTrace PT
on DT.CompId = '101125937' and DT.DeviceID = PT.DeviceID
INNER Join dbo.PanelBlockTrace PB
on
PB.PcbID = PT.PcbID)
Или, если вы хотите, чтобы оно было в отдельном предложении where, вам нужно:
select PT.PcbId
from dbo.DeviceTrace DT INNER Join dbo.PcbTrace PT
on DT.CompId = '101125937' and DT.DeviceID = PT.DeviceID
<b>where [fieldName] not in</b>
(select PB.PcbId
from dbo.DeviceTrace DT INNER Join dbo.PcbTrace PT
on DT.CompId = '101125937' and DT.DeviceID = PT.DeviceID
INNER Join dbo.PanelBlockTrace PB
on
PB.PcbID = PT.PcbID)
Хотя вам действительно следует использовать «левое соединение», а не «не в», что будет намного быстрее ..