子分类的合计

        Groupby可以进行分类的合计,如果要进一步进行子分类的合计并在一行显示,关键问题是分类的字段如何被子查询使用。我试了一些办法,觉得这样可行,分类时,就把分类字段名字改了,这样就可以在子查询中使用而不会重复了。——说的比较绕,看例子还是比较清楚的。
 

SELECT BJ,
          (SELECT COUNT(*)
         FROM [1]
         WHERE (性别 = '男') AND (班级 = bj)) AS 男生,
          (SELECT COUNT(*)
         FROM [1]
         WHERE (性别 = '女') AND (班级 = bj)) AS 女生,
          (SELECT COUNT(*)
         FROM [1]
         WHERE (班级 = bj)) AS 总计
FROM (SELECT 班级 AS BJ, *
        FROM [1]) DERIVEDTBL
GROUP BY BJ


附,失败的尝试:

SELECT 班级,
          (SELECT COUNT(*)
         FROM [1] b
         WHERE (性别 = '男') AND (b.班级 = 班级)) AS 男生
FROM [1]
GROUP BY 班级

SELECT 班级,
FROM [1]
WHERE (班级 IN
          (SELECT DISTINCT 班级
         FROM [1]))

posted @ 2008-04-10 17:46  jetz  阅读(227)  评论(0编辑  收藏  举报