SuiteQL Query Library

Accounts Payable: Aging Summary

Returns summarized Accounts Payable information based on a specific vendor.

-- Contributor: Tim Dietrich (timdietrich@me.com)
-- Additional Info: https://timdietrich.me/blog/netsuite-suiteql-accounts-payable-aging/
SELECT
	BUILTIN.DF( Transaction.Entity ) AS Vendor,
	SUM( 
		CASE 
			WHEN 
				( TRUNC( SYSDATE ) - Transaction.DueDate ) < 1 
			THEN 
				COALESCE( TransactionAccountingLine.AmountUnpaid, 0 ) - COALESCE( TransactionAccountingLine.PaymentAmountUnused, 0 )
			ELSE 
				0 
			END
	) AS Current,
	SUM( 
		CASE 
			WHEN 
				( TRUNC( SYSDATE ) - Transaction.DueDate ) BETWEEN 1 AND 30
			THEN 
				COALESCE( TransactionAccountingLine.AmountUnpaid, 0 ) - COALESCE( TransactionAccountingLine.PaymentAmountUnused, 0 )
			ELSE 
				0 
			END
	) AS Balance30,
	SUM( 
		CASE 
			WHEN 
				( TRUNC( SYSDATE ) - Transaction.DueDate ) BETWEEN 31 AND 60
			THEN 
				COALESCE( TransactionAccountingLine.AmountUnpaid, 0 ) - COALESCE( TransactionAccountingLine.PaymentAmountUnused, 0 )
			ELSE 
				0 
			END
	) AS Balance60,	
	SUM( 
		CASE 
			WHEN 
				( TRUNC( SYSDATE ) - Transaction.DueDate ) BETWEEN 61 AND 90
			THEN 
				COALESCE( TransactionAccountingLine.AmountUnpaid, 0 ) - COALESCE( TransactionAccountingLine.PaymentAmountUnused, 0 )
			ELSE 
				0 
			END
	) AS Balance90,		
	SUM( 
		CASE 
			WHEN 
				( TRUNC( SYSDATE ) - Transaction.DueDate ) > 90
			THEN 
				COALESCE( TransactionAccountingLine.AmountUnpaid, 0 ) - COALESCE( TransactionAccountingLine.PaymentAmountUnused, 0 )
			ELSE 
				0 
			END
	) AS Balance90Plus,		
	SUM ( 
		COALESCE( TransactionAccountingLine.AmountUnpaid, 0 ) - COALESCE( TransactionAccountingLine.PaymentAmountUnused, 0 ) 
	) AS Total
FROM
	Transaction
	INNER JOIN TransactionAccountingLine ON
		( TransactionAccountingLine.Transaction = Transaction.ID )
	INNER JOIN Vendor ON
		( Vendor.ID = Transaction.Entity )
WHERE
	( Transaction.Posting = 'T' )
	AND ( Transaction.Voided = 'F' )
	AND ( 
		( TransactionAccountingLine.AmountUnpaid <> 0 )
		OR ( TransactionAccountingLine.PaymentAmountUnused <> 0 )
	)
GROUP BY
	BUILTIN.DF( Transaction.Entity )
ORDER BY
	BUILTIN.DF( Transaction.Entity )

← Back to Query Library