2012-03-15 14 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の終わり(リストの途中から約半分)までうまく注文してから、ちょうどランダムな人々のエントリーを置いてから、私に最も最近の人と評価されたエントリーを与えます。
このリストは1人につき1つのエントリ(最新のもの)を表示する必要があります。
閏年などのために騒がれているのかどうかわかりませんが、どうやって修正するのか分かりません!
私はACCESS XPを使用しています。私はイメージを添付するだろうしかし、私は新しいユーザーが許可されていません!SQLクエリの順序が間違っている、わからない理由

+4

最後の結果セットが順序付けされないように、最も外側のクエリで 'ORDER BY'を持っていないようです。 – markblandford

+0

@creamyeggと同様に、[日付の呼び出し]を外側のクエリに追加します。 @creamyegg。 – Fionnuala

+0

これを回答として投稿してください。 – swasheck

答えて

5

最も外側のクエリにORDER BYがないように見えるので、最終的な結果セットは順序付けられません。

+0

それを理解しました、助けてくれてありがとう! – Kris

関連する問題