không biết nếu điều này là khá gì bạn cần, nhưng bạn có thể cần phải nhìn vào GROUP BY thay vì DISTINCT ...
nếu bạn có nhiều hồ sơ với id thành viên tương tự, bạn có thể cần phải xác định exaclty làm thế nào để xác định một trong những bạn muốn từ người khác
ví dụ như để nhận được mỗi ngày member`s khởi đầu lần cuối:
SELECT memberid, max(startingdate)
FROM annualfees
GROUP BY memberid
nhưng nếu bạn cần phải xác định một bản ghi trong các loại hình cách mà còn hiển thị các cột khác, tôi nghĩ rằng you may need to do some trickery like this ...
ví dụ như phụ truy vấn trên CHỌN với một tham gia tham gia khác cột mà bạn muốn:
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
từ đầu đến cuối, cũng cho thấy bảng dữ liệu (o/p được bắt nguồn từ/lấy thông qua "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
/
Vì vậy, làm thế nào để bạn muốn chọn MỌI trong số nhiều hàng AnnualFees cho MemberID = 123 sẽ được hiển thị? Hay bạn chỉ muốn một hàng ngẫu nhiên? –