如何使用查询选择汇总字段?

AYETY

我正在尝试使用addselectionfield选择4个字段。来自这4个字段2的是汇总(求和)字段。

我正在执行以下操作:

            date fromDate = systemDateGet();
            date toDate = (systemDateGet() + 25);
            query          = new Query();
            qbds           = query.addDataSource(tableNum(MyTable));
            qbds.addSelectionField(fieldNum(MyTable, DateField));
            qbds.addSelectionField(fieldNum(MyTable, USDAmountField), SelectionField::Sum);
            qbds.addSelectionField(fieldNum(MyTable, CurrencyNameField));
            qbds.addSelectionField(fieldNum(MyTable, EURAmountField), SelectionField::Sum);
            qbr            = qbds.addRange(fieldNum(MyTable, DateField));
            qbr.value(queryRange(fromDate, toDate));

            queryRun       = new QueryRun(query);

调试时,我在queryRun中得到以下select语句:

SELECT SUM(EURAmountField) FROM MyTable(MyTable_1)
WHERE ((DateField >= {ts '2014-04-01 00:00:00.000'}
AND DateField <= {ts'2014-04-26 00:00:00.000'}))

那么,为什么它只选择最后一个addSelectionField以及为什么要像我在addSelectionFields中编写的那样获取所有字段的原因是什么?

克拉斯·德福什(Klaas Deforche)

没有理由(我能想到)...这应该起作用,应该将selectionfield添加到您的querybuilddatasource中。尝试同步,编译和/或重新启动客户端。

您还需要做的是在您要选择的字段上按字段添加分组。否则,AX将不知道选择哪个值,因为多个记录可以具有不同的值。例如,要选择CurrencyNameField,请将其添加为选择字段,并使用:

qbds.addGroupByField(fieldNum(MyTable, CurrencyNameField)); 

然后,您将在CurrencyNameField字段中获取数据,但将获得每种货币名称的总和。

这似乎可行:

Query query;
QueryBuildDataSource qbds;
QueryBuildRange qbr;
QueryRun queryrun;

date fromDate = systemDateGet();
date toDate = (systemDateGet() + 25);
query          = new Query();
qbds           = query.addDataSource(tableNum(MyTable));
qbds.addGroupByField(fieldNum(MyTable, DateField));
qbds.addGroupByField(fieldNum(MyTable, CurrencyNameField));
qbds.addSelectionField(fieldNum(MyTable, DateField));
qbds.addSelectionField(fieldNum(MyTable, CurrencyNameField));
qbds.addSelectionField(fieldNum(MyTable, EURAmountField), SelectionField::Sum);
qbds.addSelectionField(fieldNum(MyTable, USDAmountField), SelectionField::Sum);
qbr            = qbds.addRange(fieldNum(MyTable, DateField));
qbr.value(queryRange(fromDate, toDate));

queryRun       = new QueryRun(query);

查询运行包含以下内容:

SELECT DateField, CurrencyNameField, SUM(EURAmountField), SUM(USDAmountField) 
FROM MyTable(MyTable_1) GROUP BY MyTable.DateField, MyTable.CurrencyNameField 
WHERE ((DateField>={ts '2014-04-01 00:00:00.000'} 
AND DateField<={ts '2014-04-26 00:00:00.000'}))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Elasticsearch:如何查询或汇总多值字段计数

来自分类Dev

如何使用分组的LINQ查询选择联接的字段

来自分类Dev

SQL:如何选择和汇总此查询中的列?

来自分类Dev

SQLite选择查询汇总值

来自分类Dev

使用IN和TEXT字段选择查询

来自分类Dev

使用文档字段选择Mongodb查询

来自分类Dev

如何使用别名选择字段?

来自分类Dev

React Native Expo:如何使用Firebase查询集合中多个文档中的选择字段?

来自分类Dev

如何使用查询在多值查找字段中取消选择值

来自分类Dev

如何使用 N1ql 查询选择文档的子字段

来自分类Dev

如何使用汇总来计算文档并总结特定字段?

来自分类Dev

如何使用数据透视查询汇总基于文本的列

来自分类Dev

如何仅使用PHP对汇总的查询结果值求和?

来自分类Dev

Django查询选择字段

来自分类Dev

Mongodb中的汇总查询返回特定字段

来自分类Dev

如何查询汇总交叉表

来自分类Dev

使用 2 个日期字段按月汇总数据的 T-SQL 查询

来自分类Dev

如何在FaunaDB查询语言中选择特定字段?

来自分类Dev

如何在mysql查询中获取选择字段值长度

来自分类Dev

如何在 Oracle 查询中从 XML 字段中选择值

来自分类Dev

选择查询中使用的逗号分隔字段的行数据

来自分类Dev

使用mgo通过输入选择查询的选定字段

来自分类Dev

使用选择查询数据不会完全从字段获得

来自分类Dev

选择查询中使用的逗号分隔字段的行数据

来自分类Dev

在查询中选择大量字段时使用MAX

来自分类Dev

如何使用php验证选择字段?

来自分类Dev

如何使用选择列表验证输入字段?

来自分类Dev

如何使用SelectTokens查询多个字段?

来自分类Dev

如何使用查询字段订购queryset?

Related 相关文章

热门标签

归档