Как достать должников по номерам для топ-3 разделов
Хочу получить должников по номерам из ТОП 3 разделов. Я использую этот запрос для выбора разделов:
use select top 1 code, data_container_alias from systempartitions@datadictionary where data_container_alias = 'nmbrs'
И этот запрос, чтобы получить должников:
select *
from Debtors@nmbrs de
order
by de.id
Конечный результат: я получаю много должников (скажем,> 1000), но это не зависит от того, сколько разделов я выберу.
Я пытаюсь получить список компаний-должников, используя этот запрос
select de.PartitionID
, de.ID
, de.Number
, de.Name
, de.PhoneNumber
, de.FaxNumber
, de.Email
, de.LoonaangifteTijdvak
, de.KvkNr
, d.ID as DebtorID
from Debtors@nmbrs d
full
outer
join DebtorCompanies(d.ID)@nmbrs de
order
by de.PartitionID
Но мой конечный результат - декартово произведение (всех должников) X (все разделы / компании)
Как получить должников для определенных разделов и компаний? Есть ли причина, по которой разделы находятся на уровне компании, а не на уровне должника?
1 ответ
Разделы часто сегментированы на юридическое лицо, поэтому каждая компания является отдельным разделом. В случае с Nmbrs у них на самом деле нет многораздельной базы данных, такой как salesforce org или Exact Online, но у них есть компании, для которых они выполняют расчеты.
Каждая платежная компания является частью должника, что для меня несколько непонятно. Похоже, что он "должник" с точки зрения самой Nmbrs: компании, которой они прислали свой счет.
В моей тестовой среде есть только один должник, в котором работают четыре компании.
В тестовой среде следующий запрос возвращает четыре строки:
select dtr.* prefix with 'dtr_'
, dcy.* prefix with 'dcy_'
from debtors dtr
join debtorcompanies(dtr.id) dcy
Но я не могу судить, является ли это декартовым произведением или нет, поскольку количество (*) должников равно 1. Я проверю и обновлю ответ после того, как в должную среду попаду еще один должник.