1

我最近一直在研究 AX 查询服务。我对一切都有很好的理解,但 QueryDataFieldMetadata 对象似乎不喜欢聚合。当我构建 QueryDataFieldMetadata 对象时:

QueryDataFieldMetadata field = new QueryDataFieldMetadata();
field.TableName = "InventSum";
field.FieldName = "AvailPhysical";
field.SelectionField = SelectionField.Database;

并将其添加到数据源中一切都很好。但是当我这样做时:

QueryDataFieldMetadata field = new QueryDataFieldMetadata();
field.TableName = "InventSum";
field.FieldName = "AvailPhysical";
field.SelectionField = SelectionField.Sum;

并将其添加到数据源中,该字段在结果集中根本不返回。我在执行查询之前检查了数据源本身,它在字段列表中,但没有返回任何内容。有谁知道为什么会发生这种情况?任何帮助,将不胜感激。

4

1 回答 1

1

我刚刚想通了这一点。问题是由于我从表中选择了另一个字段,但忘记将其放在“分组依据”字段中。令我感到奇怪的是,查询服务返回的那个字段是空的,但根本没有返回聚合字段。基本上我做了一个查询服务查询,它等于:

从 InventSum 组中按 ItemId、InventLocationId、wMSlocationId 选择 wMSLocationId、SUM(AvailPhysical)、RecId,其中 ItemId == 'some value';

查询返回:

InventSum.wMSLocationId = 001

InventSum.RecId = 0

包含 RecId 是一个错误,我忘记删除它,但认为这并不重要,因为它不在 group by 字段中,因此会返回 null。删除此选择字段确实会导致查询中返回聚合字段。

无论如何,我希望这对那里的人有所帮助,因为我花了一些时间才弄清楚。

于 2014-07-28T19:30:54.537 回答