我想让这个查询在axapta中工作。
Select Count(Distinct CUSTACCOUNT), YEARMONTH
From ALT_CUSTOMERSALES As AC
Where INVOICEDATE >= DateAdd(Day, -90, GetDate())
Group By YEARMONTH其中,ALT_CUSTOMERSALES是将SalesTable和CustInvoiceJour关联起来的视图。我正在寻找销售给每月唯一的客户。我尝试在视图和CustTable之间使用子句existjoin,但是group by不起作用。有什么建议吗?
这是我的代码:
Query query = new Query('miQuery');
QueryBuildDataSource vsQBDS, custTaQBDS;
QueryBuildRange qbr1;
QueryRun qr;
months = 3;
dPeriod = DateTimeUtil::date(DateTimeUtil::addDays(DateTimeUtil::utcNow(), months * -30));
custTaQBDS = query.addDataSource(tableNum(CustTable));
custTaQBDS.addSelectionField(fieldNum(CustTable, AccountNum), SelectionField::Count);
vsQBDS = custTaQBDS.addDataSource(tableNum(ALT_CustomerSales));
vsQBDS.fields().addField(fieldNum(ALT_CustomerSales, YearMonth));
vsQBDS.relations(false);
vsQBDS.joinMode(JoinMode::ExistsJoin);
vsQBDS.addLink(fieldNum(ALT_CustomerSales, CustAccount), fieldNum(CustTable, AccountNum));
qbr1 = vsQBDS.addRange(fieldNum(ALT_CustomerSales, InvoiceDate));
qbr1.value(strFmt("(%2 > %1)", date2StrXpp(dPeriod), fieldStr(ALT_CustomerSales, InvoiceDate)));
//vsQBDS.addGroupByField(fieldNum(ALT_CustomerSales, YearMonth));
qr = new QueryRun(query);发布于 2014-08-26 04:30:40
如果您将生成的SQL查询与它一起发布,则会更容易。
顺便说一句,你不需要distinct,在两个字段上分组就足够了。
SELECT YEARMONTH, COUNT(CustAccount)
FROM ALT_CUSTOMERSALES as ac
WHERE INVOICEDATE >= ''
GROUP BY YEARMONTH, CUSTACCOUNThttps://stackoverflow.com/questions/25490047
复制相似问题