non so se questo è abbastanza quello che ti serve, ma potrebbe essere necessario guardare GROUP BY invece di DISTINCT ...
se si dispone di diversi record con lo stesso ID membro, potrebbe essere necessario specificare exaclty come identificare quella desiderata dagli altri
ad esempio per ottenere ogni data Membro`s ultima partenza:
SELECT memberid, max(startingdate)
FROM annualfees
GROUP BY memberid
ma se è necessario identificare un record in questo tipo di modo, ma visualizzare anche le altre colonne, penso you may need to do some trickery like this ...
ad esempio sub-query sopra Seleziona con un iscriverti per unirsi agli altri colonne che si vogliono:
SELECT subq.memid, subq.startdate, a.expirydate, a.amount
FROM (
SELECT memberid AS memid, max(startingdate) AS startdate
FROM annualfees
GROUP BY memberid) subq
INNER JOIN annualfees a ON a.memberid = subq.memid
AND a.startingdate = subq.startdate
dall'inizio alla fine, anche mostrando tabella di dati (o/p è stato rintracciato/afferrato con "SET VERIFY ON") ...
-- show all rows
select *
from annualfees
order by memberid, startingdate
MEMBERID STARTINGDATE EXPIRYDATE AMOUNT
---------------------- ------------------------- -------------------- --------------------
1 02-DEC-09 05-FEB-10 111
1 25-JUN-10 25-JUN-11 222
2 25-APR-10 25-JUN-13 333
3 rows selected
/
-- show one member`s data using max(startingdate) as selector.
SELECT memberid, max(startingdate)
FROM annualfees
GROUP BY memberid
MEMBERID MAX(STARTINGDATE)
---------------------- -------------------------
1 25-JUN-10
2 25-APR-10
2 rows selected
/
-- show above data joined with the other columns.
SELECT subq.memid, subq.startdate, a.expirydate, a.amount
FROM (
SELECT memberid AS memid, max(startingdate) AS startdate
FROM annualfees
GROUP BY memberid) subq
INNER JOIN annualfees a ON a.memberid = subq.memid AND a.startingdate = subq.startdate
MEMID STARTDATE EXPIRYDATE AMOUNT
---------------------- ------------------------- -------------------- --------------------
1 25-JUN-10 25-JUN-11 222
2 25-APR-10 25-JUN-13 333
2 rows selected
/
Quindi, come si desidera scegliere QUALE delle molte righe di AnnualFees per MemberID = 123 deve essere visualizzato? O vuoi solo una riga a caso? –