このサイトへの投稿は初めてですが、以前はよく利用していました。私はこれに対する答えを探してみましたが、質問を適切に組み立てる方法を突き止めることができなかったので、ここに行きます.
各行に 1、2、3、または 4 の評価番号があるテーブルがあります。各行には、メンバーシップ テーブルへの外部キーである ID と、メンバーシップ テーブルに関連する他のデータへの外部キーである別の ID もあります。行 (テスト情報を保持するテーブル)。
私がする必要があるのは、このレコードのリストをメンバーシップ グループでフィルター処理し、次にリストするタイプの出力クエリを作成することです。
- テスト ID
- 1 と評価されるレコードの数
- 2 と評価されるレコードの数
- 3 と評価されるレコードの数
- 4 と評価されるレコードの数
次のようなものを使用して、各評価番号のカウントを個別に取得する方法を考え出すことができます。
SELECT Count(Eval), scores.TestID
FROM membership INNER JOIN (scores INNER JOIN tests ON scores.TestID = tests.TestID) ON membership.ID = scores.ClientID
WHERE membership.GroupID = <MembershipGroup> AND scores.Eval = 1;
上記はメイン フィルター、scores.TestID は「グループ化」ID、Count(Eval) は必要な集計です。基本的に私の理想的な出力は次のとおりです。
ID |Count1|Count2|Count3|Count4 ----------------------------------- 100 |5 |8 |9 |12 101 |16 |2 |14 |11
...など。繰り返しますが、これが文字化けした混乱であった場合は申し訳ありません。
PS。結果のクエリは、ASP.NET から取得され、ListView にバインドされます。これをストアド プロシージャとして記述し、それを検索するか、ASP の SQLDataSource にコーディングする方がよいかどうかを誰かがアドバイスできる場合は、非常に高く評価されます。 :-)