2012-05-08 11 views
0

私はuserid = 1が行ったメッセージの数を数えようとしていて、他のすべてのuseridのメッセージ数をCOUNTして、 messages = userid = 1のメッセージ数。MS ACCESS SQL:ネストされたカウントを行う方法

だから私はネストされたカウントを行う必要があります。私はこれのために2つのテーブルを持っています。メッセージとユーザー。例えば

SELECT COUNT(*) 
FROM MESSAGES 
WHERE user_id = 1 

そして結果は私が、私は

SELECT USER.user_name 
FROM MESSAGES INNER JOIN USER ON MESSAGES.user_id = USER.user_id 
WHERE COUNT(*) = ( 
SELECT COUNT(*) 
FROM MESSAGES 
WHERE user_id = 1 
) 
ような何かを行うことができ、このために、ネストされた回数を行うにはどうすればよいですその後、私は

SELECT COUNT(*) 
FROM MESSAGES 
WHERE COUNT(*) = 2 

を必要とする2 です

上記の例は私にとっては機能しません。私はMsAccessを使用しています。どんな助けもありがとう。ありがとうございました。

答えて

0

は、それは私というエラーメッセージが与えHAVING構文

SELECT USER.user_name 
FROM MESSAGES INNER JOIN USER ON MESSAGES.user_id = USER.user_id 
GROUP BY MESSAGES.user_id, USER.user_name 
HAVING COUNT(*) = ( 
SELECT COUNT(*) 
FROM MESSAGES 
WHERE user_id = 1 
) 
+0

を使用してみてください「あなたは、集計関数の一部として指定された式 『USER_NAME』を含んでいないクエリを実行しようとしたの。」それは何を意味するのでしょうか? –

+0

@NuttyNur 'GROUP BY'に' USER.user_name'を入れてください。 'GROUP BY MESSAGES.user_id、USER.user_name'になります。 –

+0

ああ、それは働いた!どうもありがとうございます! –

関連する問題