2016-11-04 1 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, 사용자 정의 필드가 없습니다. , DataAreaIdInvoiceDate

  • 선택
  • OrderAccount에 선택에 선택 정말 성능에 대한 중요한 암시 AX
  • 선택 Partition에서의 성능에 대한 정말 중요한 암시 적
  • 을 집계 합()를 사용
  • AX

직접 합계를 정렬 할 수는 없지만 a nested SQL query 일 수 있습니다.

1

검색어에 잘못 된 것이 정확히 무엇인지 모르겠지만이 정보가 도움이 될 수 있습니다.

이 표준 보고서를 확인하십시오. CustTopCustomersbyYTDSales, 좋은 쿼리가 있습니다.

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

+0

답장을 보내 주셔서 감사합니다. SSRS 보고서에 익숙하지 않아서 대답을 찾고 있지만 SSRS 보고서가 사용하는 쿼리를 어떻게 볼 수 있습니까? –

+1

보고서의 데이터는 DynamicsAXOLAP 큐브에서 가져옵니다. –