本网站的首次发帖,但过去我已经使用过很多次。我确实试图寻找答案,但无法确定如何正确地设定问题,所以这里就是了。SQL Server将行聚合为列值
我有一个表,其中每行的评估数为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中,这将非常感谢:-)
哇,这是惊人的,并完美的第一次工作。谢谢先生,你是一位真正的天才! – Katstevens 2013-04-05 02:25:45
@ user2247277 - np,很高兴能帮到你! – sgeddes 2013-04-05 02:29:06