no saben si esto es exactamente lo que necesita, pero puede que tenga que mirar a GROUP BY en lugar de DISTINCT ...
si tiene varios registros con el mismo ID de miembro, es posible que tenga que especificar exaclty cómo identificar el que desee de los otros
por ejemplo, para obtener cada fecha del miembro última partida:
SELECT memberid, max(startingdate)
FROM annualfees
GROUP BY memberid
pero si usted necesita para identificar un registro de este tipo de forma, sino también mostrar las otras columnas, creo you may need to do some trickery like this ...
por ejemplo, sub-consulta lo anterior SELECT con una unión para unirse a la otra columnas que desea:
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
de principio a fin, mostrando también la tabla de datos (O/P fue rastreado/agarrado usando "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
/
Entonces, ¿cómo desea elegir ¿CUÁL de las tantas filas de AnnualFees para MemberID = 123 debería mostrarse? ¿O solo quieres una fila al azar? –