2014-12-18 1 views
1

하위 쿼리를 지원하지 않는 SQL Server CE를 사용하고 있습니다. 그리고 나는 날짜별로 수표의 결과 (가치)를 담고있는 테이블을 가지고있다. 마지막 날짜와 함께 ID를 선택해야합니다. 확인되었습니다.SQL Server CE 최대 날짜가있는 행 값 선택

내가 이러한 열 가지고 표시

ID 
ID_Tags + 
ID_Url  + 
ID_Page + 
DateDownloaded 
Value 

3 열을 "+"를 함께 하나의 값이 요구되는 예를 체크 나타낸다.

ID를 선택하고 싶습니다. ID_Tags, ID_Url 및 ID_Page는 고유 한 조합을 나타내며 DateDownloaded는이 조합에 대한 마지막 것입니다.

+0

그래서 특정 조합 (예 : "id_tags = XXX 및 id_url = YYY 및 id_page = ZZZ")에 대한 ID가 필요합니까, 아니면 각 조합에 대해 모든 ID가있는 테이블이 필요합니까? – Becuzz

+0

첫 번째 일. 특정 조합에 대한 고유 ID입니다. 여러 개의 동등한 조합이있을 수 있지만 각 조합에 대해 마지막 "DateDownloaded"필드가있는 ID 만 필요합니다. – Oleksii

답변

0

해결책을 찾았습니다.

SQL Server CE는 하위 쿼리를 지원하지 않지만 "IN"조건을 지원합니다. 따라서이 쿼리는 다음과 같은 방식으로 작성했습니다.

SELECT ID, ID_Tags, ID_Url, ID_Page, MAX(DateDownloaded) as DateDownloaded 
    FROM RealRecords 
    WHERE DateDownloaded IN 
    (
     SELECT MAX(DateDownloaded) 
     FROM RealRecords 
     GROUP BY ID_Tags, ID_Url, ID_Page 
    ) 
AND ID IN 
(
    SELECT MAX(ID) 
    FROM RealRecords 
    GROUP BY ID_SetTags, ID_Url_Adresses, ID_SeoPage 
) 
    GROUP BY ID, ID_Tags, ID_Url, ID_Page 

이 쿼리에는 모든 개체가 포함되어 있으며 ID 만 반환하도록 수정할 수 있습니다.

일부 DateDownloaded가 동일 할 경우를 대비하여 ID IN이 추가되었습니다. ID는 자동 증분이있는 기본 키이므로 마지막 값은이 검사와 DateDownloaded 열을 결합하여 마지막 값의 100 %가됩니다.