А чего это условие то не корректное ? Жаль что полностью код, не вставили из метода с комментарием, а выглядит он вот так :
X++:
// There is at least one summary invoice so need to process each invoice separately.
// [B]Select all non-summmary invoices[/B]. If no other record exists in CustInvoiceSalesLink
// with a different origSalesId then there is only one sales order on the invoice and
// therefore it is a non-summary invoice.
select sum(EndDisc), sum(InvoiceAmount), sum(SalesBalance), sum(SumMarkup), sum(SumTax) from custInvoiceJour
where custInvoiceJour.RefNum == RefNum::SalesOrder
notexists join custInvoiceSalesLink
where custInvoiceJour.SalesId == custInvoiceSalesLink.SalesId
&& custInvoiceJour.InvoiceDate == custInvoiceSalesLink.InvoiceDate
&& custInvoiceJour.InvoiceId == custInvoiceSalesLink.InvoiceId
&& custInvoiceSalesLink.OrigSalesId != _salesTable.SalesId;
Т.е. этот запрос должен считать сумму по всем накладным текущего заказа, в которых нет других заказов - т.е. одиночные накладные.
Поэтому как мне кажется надо в три запроса добавить условие custInvoiceJour.SalesId = _salesTable.SalesId, которые содержат notexists join в этом методе.
Насчет равенства это да, но навскидку пока, быстро не придумал, как выбрать такие накладные без not exists join,
Сам метод считает сумму которая в накладных из данного заказа и считает ее так = сумма всех накладных только по этому заказу + доля из накладных где наш заказ включен как один из нескольких.
А вообще если не используете ключ отключите его, проблемы уйдут не только в этом методе.