항목 ID (PK), 부모 ID (FK), 이름 및 날짜가있는 항목 테이블이 있다고 가정 해 보겠습니다. 또한 열 ID (PK)와 이름이있는 item_parent 테이블이 있습니다. 항목은 동일한 상위 항목에 속할 수 있거나 항목에 상위 항목이 없을 수 있습니다 (parent_id는 null 일 수 있음).SQL 날짜별로 정렬하지만 외래 키 그룹 유지
SQL 쿼리를 구성하여 날짜순으로 정렬 된 모든 항목 (DESC)을 선택하고 동일한 부모를 공유하는 모든 항목을 유지합니다 (이 경우 항목 모음의 최대 날짜 순).
SELECT *
FROM itemTable
ORDER BY parent_id, date desc
이 선택됩니다 그것을 알고 도움이 경우
, 내가 SQL 서버 2005
이것은 작동하지만 부모가없는 항목은 부모가있는 항목과 구분되지 않도록하고 싶습니다 (2 개의 개별 정렬 목록 제공). 나는 그들 모두를 통합하기를 원한다. 이것을 달성하기 위해 수정할 수 있습니까? – richard23
그래, 내가 편집 한대로 작동하는 것 같아 ... –
WHERE 절 (ORDER BY 내의 내부 SELECT)에 다음과 같이 변경하면 완벽하게 매우 근접합니다. WHERE ISNULL (Parent_ID, Item_ID) = ISNULL (I.Parent_ID, I.Item_ID) 한 가지 현저한 문제는 주어진 부모의 항목 모음이 DESC 날짜별로 항상 정렬되지 않는다는 것입니다. – richard23