SQL View for Microsoft Dynamics GP General Ledger Accounts
Microsoft Dynamics GP - SQL View for GL Account Review
Hello everyone!
It’s been far too long since my last blog post. I have lots of updates but I wanted to just get to the good stuff first.
I will be sharing a tip at the 2022 Community Summit and I wanted to give you all access to a SQL View that I found and improved. I had a customer with thousands and thousands of accounts that were setup when they first setup GP. Their partner took every possible combo of each segment value and created accounts. This created Balance Sheet accounts for each subdivision/site. Many accounts were never used. They had no easy way to find them! I found a SQL View on the Microsoft Communities site. I added some additional fields and it was perfect!
I have a contest and a survey to help me figure out what I should focus on next. Here’s a link to the survey: Training Dynamo Survey
To learn how to load SQL Views and use them with SmartList Designer or SmartList Builder, visit and subscribe to my YouTube Channel: youtube.com/c/trainingdynamo
--The SQL Script below started here https://community.dynamics.com/gp/f/microsoft-dynamics-gp-forum/144447/gl-account-numbers--cleanup-of-accounts-not-used
--Amber Bell from Training Dynamo added the "Created Date" and "Account Type" and turned into a SQL View
CREATE VIEW _GLAccountLastUsed
AS
SELECT B.ACTNUMST 'Account Number' ,
A.ACTDESCR 'Account Description' ,
A.CREATDDT 'Created Date',
A.ACTINDX 'Account Index',
A.ACCTTYPE 'Account Type',
A.ACTIVE 'Active',
CASE WHEN ISNULL(D.TRX_Date, 0) < A.CREATDDT THEN 'Yes'
ELSE ''
END AS NeverUsed ,
ISNULL(D.TRX_Date, 0) AS 'Last Used' ,
DATEDIFF(YY, ISNULL(D.TRX_Date, 0), GETDATE()) 'Not Used Since (In Years)' ,
DATEDIFF(MM, ISNULL(D.TRX_Date, 0), GETDATE()) 'Not Used Since (In Months)' ,
DATEDIFF(DD, ISNULL(D.TRX_Date, 0), GETDATE()) 'Not Used Since (In Days)'
FROM dbo.GL00100 AS A
LEFT OUTER JOIN dbo.GL00105 AS B ON A.ACTINDX = B.ACTINDX
LEFT OUTER JOIN ( SELECT ACTINDX ,
MAX(TRX_Date) TRX_Date
FROM ( SELECT ACTINDX ,
MAX(TRXDATE) AS TRX_Date
FROM dbo.GL20000
GROUP BY ACTINDX
UNION ALL
SELECT ACTINDX ,
MAX(TRXDATE) AS TRX_Date
FROM dbo.GL30000
GROUP BY ACTINDX
) AS C
GROUP BY C.ACTINDX
) AS D ON B.ACTINDX = D.ACTINDX
GO
GRANT SELECT ON _GLAccountLastUsed TO DYNGRP