2009-07-18 18 views
1

私は、以下のフィールドを持つmsアクセスで "フォーム"と呼ばれるテーブルを持っています。 formno、location、status。MS AccessからのJSP結果セット - ロケーション名の取得方法?

Iを算出し、レポートを作成したい:

  1. 各位置で
  2. ステータス=「保留」の形態(列)のない合計各位置でフォーム(列)の合計なし。

私はこのクエリでそれを実行しようとしました:

select count(formno) as totalforms 
from form 
group by location; 

select count(formno) as pendingforms 
from form 
group by location 
WHERE status = 'pending'; 
+0

をご覧ください。 – shahkalpesh

答えて

0
SELECT Location, COUNT(FormNo) AS TotalForms, 
SUM(IIF(status = "pending", 1, 0)) AS Pending 
FROM FORM GROUP BY Location 

は、このヘルプをしていますか?

0

2番目のSQL Statmentには、Where句が間違った場所にあります。これは、これらの1のようになります。

基本的に
SELECT Count(form.formno) AS CountOfformno, form.location 
FROM form 
GROUP BY form.location, form.status 
HAVING (((form.status)='pending')); 

SELECT Count(form.formno) AS CountOfformno, form.location 
FROM form 
WHERE (((form.status)='pending')) 
GROUP BY form.location; 

あなたが列によってグループに希望とHAVING句を使用し、その上の基準を設定している場合。 Where節はgroup by節の前にあります。

SQL構文を理解するには、デザインビューでクエリを使用する方が簡単です(デザインビューで)。その後、データシートビューで結果を取得した後、SQLビューに切り替えます。

0

フォームは予約語で、角かっこ(http://support.microsoft.com/kb/286335)で囲む必要があります。テーブルの名前を変更することをお勧めします。なぜなら、引き続き問題が発生するからです。 (*)また、あなたがテーブルのすべてのレコードを含めたい場合に使用することができますカウント

select location,count(formno) as totalforms 
from [form] 
group by location 

select location, count(formno) as pendingforms 
from [form] 
WHERE status = 'pending' 
group by location 

注:他の人が質問をすると、適切に質問タイトルを編集する方法In SQL is there a difference between count(*) and count(<fieldname>)

関連する問題