October 2010
M T W T F S S
« Sep   Nov »
 123
45678910
11121314151617
18192021222324
25262728293031
Archives

Budget Analysis Query

Hi all

Today, I am going to post a script which allows you to analyze budgets vs. actuals for Microsoft Dynamics GP. There is an inquiry window available in Dynamics GP for viewing the budgets vs. actuals analysis. But this has to be inquired account by account and there is no out of the box report for viewing the budget analysis for a range of accounts. This query addresses this issue and helps users analyze budget details for all accounts together.

SELECT  Y.*
FROM    ( SELECT    Z.GPACCOUNTNO AS GPACCOUNTNO ,
                    RTRIM(Z.GPACCTDESC) AS GPACCTDESC ,
                    Z.YEAR1 AS FISCALYEAR ,
                    Z.PERNAME AS PERIODNAME ,
                    LTRIM(RTRIM(STR(Z.YEAR1))) + '::' + REPLICATE('0',
                                                              ( 2
                                                              - LEN(Z.PERIODID) ))
                    + LTRIM(RTRIM(STR(Z.PERIODID))) AS FISCALPERIOD ,
                    Z.BUDGETID AS BUDGETID ,
                    Z.BUDGETAMT AS BUDGETAMOUNT ,
                    Z.ACTUALAMOUNT AS ACTUALAMOUNT ,
                    ( Z.ACTUALAMOUNT - Z.BUDGETAMT ) AS VARIANCE ,
                    ROUND(CASE WHEN Z.BUDGETAMT = 0 THEN 0
                               WHEN Z.ACTUALAMOUNT = 0
                                    AND ( Z.ACTUALAMOUNT - Z.BUDGETAMT ) < 0
                               THEN -1
                               WHEN Z.ACTUALAMOUNT = 0
                                    AND ( Z.ACTUALAMOUNT - Z.BUDGETAMT ) > 0
                               THEN 1
                               ELSE ( ( Z.ACTUALAMOUNT - Z.BUDGETAMT )
                                      / Z.BUDGETAMT )
                          END, 4) AS VARIANCEPERCENT
          FROM      ( SELECT    A.BUDGETID ,
                                B.YEAR1 ,
                                A.PERIODID ,
                                E.PERNAME ,
                                A.ACTINDX ,
                                RTRIM(C.ACTNUMST) AS GPACCOUNTNO ,
                                RTRIM(D.ACTDESCR) AS GPACCTDESC ,
                                A.BUDGETAMT ,
                                ISNULL(( SELECT SUM(DEBITAMT - CRDTAMNT)
                                         FROM   dbo.GL20000 T
                                         WHERE  T.ACTINDX = A.ACTINDX
                                                AND E.PERIODDT <= T.TRXDATE
                                                AND E.PERDENDT >= T.TRXDATE
                                       ), 0) AS ACTUALAMOUNT
                      FROM      dbo.GL01201 A
                                INNER JOIN dbo.GL00200 B ON A.BUDGETID = B.BUDGETID
                                INNER JOIN dbo.GL00105 C ON C.ACTINDX = A.ACTINDX
                                INNER JOIN dbo.GL00100 D ON D.ACTINDX = A.ACTINDX
                                INNER JOIN dbo.SY40100 E ON E.YEAR1 = B.YEAR1
                                                            AND E.PERIODID = A.PERIODID
                      WHERE     E.SERIES = 0
                    ) Z
        ) Y
ORDER BY Y.GPACCOUNTNO ,
        Y.GPACCTDESC ,
        Y.FISCALYEAR ,
        Y.PERIODNAME ,
        Y.FISCALPERIOD ,
        Y.BUDGETID

This query can be modified to include additional information for analysis purposes.

Hope this helps… Until next post…

VN:F [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.17_1161]
Rating: 0 (from 0 votes)