2012-03-15 5 views
1
SELECT a.[Evaluation Number], a.[CSO Name], a.service 
    , a.[Date of call], a.[Name of Monitor] 
    , a.[Date Sheet Completed] 
FROM [KD call monitoring] AS a 
WHERE a.[Evaluation Number] 
    IN (SELECT TOP 1 [Evaluation Number]  
     FROM [KD call monitoring] b  
     WHERE b.[CSO Name] = a.[CSO Name]    
      AND b.[Date of Call] =     
       (SELECT MAX([date of call])     
       FROM [KD call monitoring]     
       WHERE [cso name] = a.[CSO Name])  
       ORDER BY [Evaluation Number]); 

이 코드는 직장에서 통화 평가 데이터베이스에있는 코드이므로 항목을 정렬하므로 잠시 모니터링하지 않은 직원이 있습니다. 그러나 그것은 31의 jan에서 febuary (목록의 아래의 약 중도에서)의 끝까지 그 다음 단지 닥치는대로의 민족 입구를 놓고, 나에게 가장 최근의 사람과 평가 받았던 입구를 줘지기 전에 배치한다.
이 목록은 한 사람당 한 항목 - 최신 항목 만 표시하면됩니다.
윤년이나 무언가 때문에 엉망이되는지 모르겠지만 어떻게 해결해야할지 모르겠다!
메신저 액세스를 사용하여 메신저. 그리고 나는 이미지를 첨부하지만 새 사용자는 허용되지 않습니다.SQL 쿼리 순서가 잘못되었습니다. 이유가 확실하지 않습니다.

+4

가장 바깥 쪽 쿼리에 'ORDER BY'가없는 것처럼 보이므로 최종 결과 집합이 정렬되지 않습니다. – markblandford

+0

@creamyegg가 말하듯이, [Date of call]을 외부 쿼리에 추가하십시오. – Fionnuala

+0

@creamyegg. 답으로 게시하십시오. – swasheck

답변

5

바깥 쪽 쿼리에 ORDER BY이없는 것처럼 보이므로 최종 결과 집합은 정렬되지 않습니다.

+0

도움을 주셔서 감사합니다. – Kris

관련 문제