Dan wrote on 31/07/2007 10:42:49:
Have a policy detail file keyed by customer#, renewal#, sequence#. I
need
to select all customers, but only the last one in key sequence for each
unique customer. Renewal# and sequence# are 2-digit numerics. Am I
looking
to use DISTINCT with a subselect? My attempts so far have netted only
syntax errors.
Customer# Renewal# Sequence#
3441978 3
3441978 4
3441978 4 1 <== select this one
3452173 3
3452173 3 1
3452173 3 2 <== select this one
3470317 3
3470317 3 1 <== select this one
This is what I came up with (which I think is pretty much what Eric
suggested).
with maxRen as (select custnum, max(renewal) maxRen
from aglib.testDan
group by custnum)
select a.custnum, a.renewal, max(seq)
from aglib.testDan a
inner join maxRen
on a.custnum=maxRen.custnum and a.renewal=maxRen.maxRen
group by a.custnum, a.renewal
If the only record for customer 3480317 was this:
Customer# Renewal# Sequence#
3480317 3
Should it be selected? If not you'd need to add a 'where seq > 0' in
there.
HTH,
Adam
Attention:
The information contained in this message and or attachments is
intended only for the person or entity to which it is addressed and may contain
confidential and/or privileged material. Any review, retransmission,
dissemination or other use of, or taking of any action in reliance upon, this
information by persons or entities other than the intended recipient is
prohibited. If you received this message in error, please contact the sender and
delete the material from any system and destroy any copies. Thank you for your
time and consideration.
Attention:
Le contenu de ce message et(ou) les fichiers ci-joints s?adressent
exclusivement à la personne ou -entité à laquelle ils sont destinés. Ils peuvent
contenir de l?information confidentielle, protégée et(ou) classifiée. Il est
strictement interdit à toute personne ou entité autre que le(la) destinataire
prévu(e) de ce message d?examiner, de réviser, de retransmettre ou de diffuser
cette information, de prendre une quelconque action en fonction ou sur la base
de celle-ci, ou d?en faire tout autre usage. Si vous avez reçu ce message par
erreur, veuillez communiquer avec l?expéditeur(trice), supprimer ce message et
les fichiers ci-inclus de tout système, et en détruire toutes copies, qu?elles
soient électroniques ou imprimées. Nous vous remercions de votre entière
collaboration.
As an Amazon Associate we earn from qualifying purchases.