2016-01-14 30 views
0

我想提取所有本年度收取的預算分錄,並在每個月之後累計。1月份,計算1月份累積總計,1月累加2月份累計... 我從此開始查詢:獲取月度數據

IF OBJECT_ID('tempdb..#BudgetTransTmp') IS NOT NULL 
     DROP TABLE #BudgetTransTmp 
Select 
     Row_number() over(ORDER BY YEAR(BTLine.DATE),MONTH(BTLine.DATE)) as RowNumber, 
     COMBINATION.DISPLAYVALUE, 
     BTLine.LedgerDimension          AS LedgerDimension, 
     MIN(BTLine.TransactionCurrencyAmount)      AS Amount, 
     SUM(BTLine.TransactionCurrencyAmount)  
      OVER (ORDER BY YEAR(BTLine.DATE),MONTH(BTLine.DATE),BTLine.LedgerDimension,COMBINATION.DISPLAYVALUE) AS SUM, 
     YEAR(BTLine.DATE)           AS Year , 
     MONTH(BTLine.DATE)           AS MONTH 

INTO #BudgetTransTmp 
FROM MicrosoftDynamicsAX.dbo.BudgetTransactionLine     AS BTLine 


    --Get Display value 
    INNER JOIN MicrosoftDynamicsAX.dbo.DIMENSIONATTRIBUTEVALUECOMBINATION AS COMBINATION 
    ON COMBINATION.RECID           = BTLine.LEDGERDIMENSION 
GROUP BY 
      BTLine.LedgerDimension, 
      YEAR(BTLine.DATE), 
      MONTH(BTLine.DATE) 
ORDER BY RowNumber 

結果是:

LedgerDimension Amount SUM  Year Month Display 
1 22565448266  850.00 850.00 2012 8  601200-001-027-- 
2 22565448265  1700.00 2550.0 2012 12 601200-002-027-- 
3 22565448266  2700.00 5250.00 2012 12 601200-001-027-- 
4 22565448267  650.00 5900.00 2012 12 601400-002-027-- 
5 22565448268  1100.00 7000.00 2012 12 601400-001-027-- 

但我想

LedgerDimension Amount SUM  Year Month Display 
1 22565448266  850.00 850.00 2012 8  601200-001-027-- 
2 22565448265  1700.00 1700.0 2012 12 601200-002-027-- 
3 22565448266  2700.00 3350.00 2012 12 601200-001-027-- 
4 22565448267  650.00 650.00 2012 12 601400-002-027-- 
5 22565448268  1100.00 1100.00 2012 12 601400-001-027-- 

我覺得我的(主鍵)令的組合必須是速滑運動員的肌肉LedgerDimension,年,月,顯示

在任何幫助,這對於

回答

1

我想你需要做的是:

SUM(BTLine.TransactionCurrencyAmount)  
      OVER (PARTITION BY BTLine.LedgerDimension ORDER BY YEAR(BTLine.DATE),MONTH(BTLine.DATE),BTLine.LedgerDimension,COMBINATION.DISPLAYVALUE) AS SUM 

讓我知道這是否有效。

+0

是的非常感謝你 – stoner