2016-11-04 58 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多維數據集。 –