SQL: Création de vieillissement des seaux sur base de la dernière date de paiement pour l'information financière

J'ai besoin de créer un vieillissement rapport de soldes de crédit sur la clientèle de niveau.

Notes:

  1. Vieillissement est basé sur la dernière date de paiement.

  2. Un client peut avoir plusieurs comptes, et il y a parfois des erreurs dans lequel un paiement est imputé sur le compte de mal. Par exemple, un client avec un 15 $de solde sur un compte rend un 15 $de paiement. Que 15 $de paiement peuvent être appliquées au mauvais compte, laissant le client avec un $-15 équilibre sur un seul compte et un 15 $de l'équilibre sur l'autre. Ce client a besoin d'être exclus du rapport.

SQL pour obtenir les clients avec les soldes de crédit:

SELECT 
  ACCOUNT.CUST_ID
, sum(ACCOUNT.BALANCE)

FROM ACCOUNT

GROUP BY ACCOUNT.CUST_ID

HAVING sum(ACCOUNT.BALANCE) < 0

SQL pour obtenir la dernière date de paiement:

SELECT

  TRANSACTIONS.CUST_ID
, MAX(TRANSACTIONS.POST_DATE)

FROM TRANSACTIONS

WHERE TRANSACTIONS.TX_TYPE = 'PAYMENT'

GROUP BY TRANSACTIONS.CUST_ID

J'ai besoin de créer des colonnes pour le vieillissement des seaux tels que:

'0 - 30' SOLDE DE CRÉDIT DE LA SOMME

'0 - 30' SOLDE DE CRÉDIT À LA CLIENTÈLE COMPTER

'31 - 60'...

J'allais CAS d'utilisation des déclarations à l'aide de la fonction DATEDIFF entre le max(TRANSACTIONS.POST_DATE) et "hier" - DATEADD(dd,-1,getdate()) pour créer les seaux.

Cependant, ne serait-il pas plus efficace de faire cela à l'aide de variables ou d'une procédure stockée à obtenir de séparer les clients sur la base de la dernière date de paiement avant d'effectuer le seau somme et le nombre des calculs?

Des idées sur la façon de le faire avec précision et de manière efficace? Jusqu'à présent, j'ai été ramasser les clients avec des soldes de crédit avec leur dernière date de paiement d'une simple requête, puis la création du vieillissement des seaux moi-même à l'aide d'Excel.

InformationsquelleAutor texas_mike81 | 2012-07-12