2016-11-04 61 views
0

我想根据收入前20位客户创建报告。检索客户收入

我使用的查询:

SELECT dbo.CustTable.AccountNum 
,dbo.dirpartytable.NAME 
,dbo.hcmworker.PERSONNELNUMBER 
,dbo.CustInvoiceJour.SALESBALANCE 
,dbo.custinvoicejour.QTY 
FROM dbo.CustTable 
inner JOIN dbo.HCMWORKER ON dbo.HCMWORKER.RECID = dbo.CustTable.KEV_Worker 
inner join dbo.custInvoiceJour on CustInvoiceJour.OrderAccount = CustTable.AccountNum 
inner join dbo.dirpartytable on dirpartytable.recid = custtable.PARTY 
where CustTable.KEV_Worker = '5633561745' 
ORDER BY SalesBalanceMst DESC 

我找不到客户收益的关系,毕竟,这就是我要排序的报告。在构建报告时,我正在对SalesBalanceMST进行排序。此外,我在执行此查询时正在获取多个记录。

我在做什么错了?

编辑:我现在意识到我显示每个发票日志,我如何显示客户的总收入?

+0

我很疑惑,一个mysql查询将包括前缀'dbo' - 但没有技术上的错误,我猜。 – Strawberry

回答

3

从AX 2012类似的搜索:

CustInvoiceJour CustInvoiceJour; 
CustTable CustTable; 
DirPartyTable DirPartyTable; 
select forceLiterals generateonly sum(SalesBalanceMST), sum(Qty) from CustInvoiceJour 
    where CustInvoiceJour.OrderAccount == '102372200' 
     && CustInvoiceJour.InvoiceDate > today()-365 
    join TableId from CustTable 
    group AccountNum 
    where CustTable.AccountNum == CustInvoiceJour.OrderAccount 
    join TableId from DirPartyTable 
    group Name 
    where DirPartyTable.RecId == CustTable.Party; 
info(CustInvoiceJour.getSQLStatement()); 

这显示了以下SQL:

SELECT SUM(T1.SALESBALANCEMST),SUM(T1.QTY),T2.ACCOUNTNUM,T3.NAME 
FROM CUSTINVOICEJOUR T1 
CROSS JOIN CUSTTABLE T2 
CROSS JOIN DIRPARTYTABLE T3 
WHERE (((T1.PARTITION=5637144576) AND (T1.DATAAREAID=N'xxx')) 
AND ((T1.ORDERACCOUNT=N'102372200') 
AND (T1.INVOICEDATE>{ts '2015-11-06 00:00:00.000'}))) 
AND (((T2.PARTITION=5637144576) AND (T2.DATAAREAID=N'xxx')) 
AND (T2.ACCOUNTNUM=T1.ORDERACCOUNT)) 
AND ((T3.PARTITION=5637144576) 
AND (T3.RECID=T2.PARTY))  
GROUP BY T2.ACCOUNTNUM,T3.NAME 
ORDER BY T2.ACCOUNTNUM,T3.NAME 

的是从你的查询不同:

  • 没有加入Hc mWorker,因为我没有你的自定义字段。
  • 使用金额()聚合
  • DataAreaId选择上InvoiceDate
  • 选择上OrderAccount
  • 选择,性能在AX
  • 选择上Partition真正重要的,含蓄的,性能非常重要,隐含在AX

您不能直接排序总和,但可能会在a nested SQL query

1

我不确切地知道你的查询有什么问题,但也许这些信息可以帮助你。

查看本标准报告CustTopCustomersbyYTDSales,这样做有一些很好的问题。

https://technet.microsoft.com/en-us/library/hh389751.aspx

+0

感谢您的回答,我对SSRS报告不是很熟悉,我已经在寻找答案,但是:如何查看此SSRS报告正在使用的查询? –

+1

来自报告的数据来自DynamicsAXOLAP多维数据集。 –