Запрос Invantive Data Hub на Exact Online возвращает слишком много строк

Когда я использую Invantive Data Hub для загрузки данных из нескольких компаний Exact Online, я получаю дублирующиеся строки, когда ожидаю по одной строке на компанию.

Я использую следующий запрос:

select gla.code
,      gla.description
,      gla.division
,      glc.glclassification_code_attr
,      glc.glclassification_description
,      glc.division_code
from   ExactOnlineREST..GLAccounts gla
join   ExactOnlineXML..GLAccountClassifications glc
on     gla.code     = glc.GLCLASSIFICATIONLINKS_GLACCOUNT_CODE_ATTR
and    gla.division = glc.division_code
where  gla.code     = '4001'
and    gla.division = 12345

Результат, который я ожидаю получить обратно - 1 строка, но запрос извлекает 12 строк.

Один запрос из отдельных таблиц дает ожидаемый результат в 1 строке. например:

select glc.glclassification_code_attr
,      glc.glclassification_description
,      glc.GLCLASSIFICATIONLINKS_GLACCOUNT_CODE_ATTR
,      glc.division_code
from   ExactOnlineXML.XML.GLAccountClassifications glc
where  glc.GLCLASSIFICATIONLINKS_GLACCOUNT_CODE_ATTR = '4001'
and    glc.division_code                             = 12345

а также:

select gla.Code
,      gla.Description
,      gla.Division
from   ExactOnlineREST..GLAccounts gla
where  gla.code     = '4001'
and    gla.division = 12345

Как убедиться, что объединенный запрос возвращает только 1 строку, как и ожидалось для деления 12345?

1 ответ

Извините, что заняло некоторое время, чтобы ответить на этот вопрос.

Вопрос, который вы задаете, на самом деле является ошибкой, которая была в нашем программном обеспечении в течение некоторого времени. Это применимо только к запросам, где у вас есть объединение с несколькими условиями, которые все были сравнениями полей. Для серьезной оптимизации производительности (с использованием чего-то похожего на индекс для фильтрации) мы взяли несколько ярлыков здесь и там. Это привело к проверке только первого условия. Другие не были.

Я позабочусь, чтобы это было решено с использованием обычных каналов.

Другие вопросы по тегам