X++:
// Здесь второй notexists возвращает false, но на результате это не сказывается
select itemId from inventTable
where inventTable.ItemId == itemId
notexists join inventTableE
where inventTableE.ItemId == itemIdne
notexists join inventTableNE
where inventTableNE.ItemId == inventTable.ItemId;
Как бы это абсурдно не звучало, но проблему можно решить заменив второй notexists на exists и сместив условие выборки полей:
X++:
select itemId from inventTable
where inventTable.ItemId == itemId
notexists join inventTableE
exists join inventTableNE
where inventTableNE.ItemId == itemId
&& inventTableE.ItemId == itemId;
Маловероятно, что найдутся желающие поддерживать такой код.