获取每月数据

Getting Monthly Data

我想提取所有计入当年并在之后每个月累计的预算条目。1 月,取 1 月的总数,2 月取 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--

我认为我的 ORDER by(主键)组合必须介于 LedgerDimension、Year、Month、Display

这方面的任何帮助

我认为你需要做的是:

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

让我知道这是否有效。