Explanation of SQL
This query will help you locate discrepancies between the finance charge amount specified on the order vs. what is actually posted to the general ledger.
Risk of Data Corruption if Run Improperly
Low. This is a selection query and no data is modified in the running of it.
SQL
This sql will pull the finance charge account automatically specified under setup | accounting setup | default accounts setup.
DECLARE @FinanceChargeAccountID INT; SET @FinanceChargeAccountID = (SELECT TOP 1 FinanceChargeAccountID FROM Store WITH(NOLOCK) WHERE ID > 0); -- This section locates every order and compares the amount in finance charges to the amount in the GL. SELECT OrderNumber , T.ID AS TransHeaderID , CompanyName , SaleDate , FinanceChargeAmount , ISNULL( (SELECT -SUM(GL.Amount) FROM GL WITH(NOLOCK) WHERE TransActionID = T.ID AND GL.GLAccountID = @FinanceChargeAccountID ),0) AS GLFinanceChargeAmt , FinanceChargeAmount + ISNULL( (SELECT -SUM(GL.Amount) FROM GL WITH(NOLOCK) WHERE TransActionID = T.ID AND GL.GLAccountID = @FinanceChargeAccountID ),0) AS Delta FROM TransHeader T WITH(NOLOCK) LEFT JOIN Account A WITH(NOLOCK) ON A.ID = T.AccountID WHERE TransActionType IN (1,6) GROUP BY T.OrderNumber, T.ID, T.SaleDate, T.FinanceChargeAmount, CompanyName HAVING ISNULL( (SELECT -SUM(GL.Amount) FROM GL WITH(NOLOCK) WHERE TransActionID = T.ID AND GL.GLAccountID = @FinanceChargeAccountID ),0) ISNULL(T.FinanceChargeAmount,9999999) UNION -- This section locates any gl entries that do not pertain to an order. SELECT NULL AS OrderNumber , NULL AS TransHeaderID , CompanyName , NULL AS SaleDate , NULL AS FinanceChargeAmount , -SUM(GL.Amount) AS GLFinanceChargeAmt , -SUM(GL.Amount) AS Delta FROM GL WITH(NOLOCK) LEFT JOIN Account A WITH(NOLOCK) ON A.ID = GL.AccountID WHERE GL.GLAccountID = @FinanceChargeAccountID AND TransActionID IS NULL GROUP BY CompanyName ORDER BY T.OrderNumber
DECLARE @FinanceChargeAccountID INT; SET @FinanceChargeAccountID = (SELECT TOP 1 FinanceChargeAccountID FROM Store WITH(NOLOCK) WHERE ID > 0); --Query to identify all finance charges not linked to orders in a more detailed view so you can see each individual entry. SELECT CompanyName , TransactionID , Description , GL.Amount AS GLFinanceChargeAmt FROM GL WITH(NOLOCK) LEFT JOIN Account A WITH(NOLOCK) ON A.ID = GL.AccountID WHERE GL.GLAccountID = 41 AND TransActionID IS NULL
Version Information
- Entered : 7/31/2004, Brandon Readlinger (Cyrious)
- Version : All versions of Control
You could leave a comment if you were logged in.