Max Jour avec les clauses where et HAVING - Teradata
J'ai une seule table de transactions avec acc_nbr, tran_nbr, tran_amt, tran_dt, et tran_typ.
J'ai besoin de trouver seulement acc_nbr où tran_typ = " xx " et de la somme(tran_amt)<0 et montrer la plus récente tran_dt.
Je peux trouver tous les comptes dont la somme des " xx "tran_typ sont inférieures à zéro, mais je n'arrive pas à obtenir la date sans l'ajout de toutes les transactions qui contiennent un négatif tran_typ "xx".
Ce qui fonctionne jusqu'à présent:
SEL acc_nbr, SUM(tran_amount) as error
FROM DATABASE.TRAN_TBL
WHERE tran_typ = 'xx'
GROUP BY acc_nbr
HAVING sum(tran_amt)<0
Comment puis-je apporter à la date de la transaction la plus récente?
Vous devez vous connecter pour publier un commentaire.
Le meilleur pari est de trouver tous les comptes avec la somme négative dans un ensemble, la dernière en date de la transaction pour chaque compte dans une autre série et intérieure se joindre à eux deux ensemble sur le même compte.
Vous pouvez essayer quelque chose comme:
Syntaxe pour teradata peut être légèrement différente, mais l'idée générale devrait être la même.
Je ne suis pas tout à fait sûr de comprendre le problème, mais vous devez simplement être en mesure d'ajouter un MAX(trans_dt) pour le sélectionner, et il vous donnera la plus récente date de l'opération