2012-01-03 7 views
3

表のTblQuestions:24時間制限のクエリで同様にStackoverflowの5つの質問と同様のクエリですか?

UserId  time  
------------------ 
1   1-1-2012 10:14 
1   1-2-2012 11:15 
1   1-3-2012 12:18 
1   1-14-2012 13:15 
1   1-16-2012 14:14 
2   1-16-2012 10:15 
2   1-16-2012 10:15 
... 
... 

私は、ユーザーがすでに24時間間隔で5質問を掲載しているかどうかを確認するクエリを構築したいです。

と同じです。

私は私が「許可」または様ビットフィールドを「不許可」を返す効率的なクエリ(userIdをすることによって)...

P.S.が必要

問合せは、すでに24時間間隔で以上5質問見つかっいる場合 - あなたはしないで任意の間隔のためではなく、ためにを求めた場合は、「許可しない」....

答えて

5

- DONTスキャンを継続 - ちょうどリターンを過去24時間、次に:

IF (
    SELECT COUNT(*) 
    FROM YOURTABLE 
    WHERE 
     UserId = @UserId 
    AND [time] >= DATEADD(day, -1, GETDATE()) 
    ) > 5 
    SELECT 'disAllow' 
ELSE 
    SELECT 'Allow' 
関連する問題