第一次在这个网站上发帖,但我过去经常使用它。我确实尝试过寻找这个问题的答案,但无法确定如何正确地提出问题,所以就这样吧。
我有一个表,其中每一行的评估编号为 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 中,将不胜感激:-)