Запрос 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 ответ
Извините, что заняло некоторое время, чтобы ответить на этот вопрос.
Вопрос, который вы задаете, на самом деле является ошибкой, которая была в нашем программном обеспечении в течение некоторого времени. Это применимо только к запросам, где у вас есть объединение с несколькими условиями, которые все были сравнениями полей. Для серьезной оптимизации производительности (с использованием чего-то похожего на индекс для фильтрации) мы взяли несколько ярлыков здесь и там. Это привело к проверке только первого условия. Другие не были.
Я позабочусь, чтобы это было решено с использованием обычных каналов.