1

我想从 TOP 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

最终结果:我得到了很多债务人(比如 > 1.000),但这并不取决于我选择了多少个分区。

我想要实现的是使用此查询获取债务人公司列表

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(所有分区/公司)的笛卡尔积

如何获得特定分区和公司的债务人?为什么分区是在公司而不是债务人级别,有什么原因吗?

4

1 回答 1

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。我将在让另一个债务人进入测试环境后检查并更新答案。

于 2017-11-22T16:18:24.620 回答