select a.统计的字段名,a.代码,b.省市名称 代码中文含义,统计值 from (
select '省市代码' 统计的字段名,省市代码 代码,count(*) 统计值 from 省市代码表 group by 省市代码) a,省市代码表 b where a.省市代码=b.省市代码
union all
select a.统计的字段名,a.代码,b.学历名称 代码中文含义,统计值 from (
select '学历代码' 统计的字段名,学历代码 代码,count(*) 统计值 from 学历代码表 group by 学历代码) a,学历代码表 b where a.学历代码=b.学历代码
union all
select a.统计的字段名,a.代码,b.专业名称 代码中文含义,统计值 from (
select '专业代码' 统计的字段名,专业代码 代码,count(*) 统计值 from 专业代码表 group by 专业代码) a,专业代码表 b where a.专业代码=b.专业代码
union all
select a.统计的字段名,a.代码,b.考试课程一名称 代码中文含义,统计值 from (
select '考试课程一代码' 统计的字段名,考试课程一代码 代码,count(*) 统计值 from 考试课程一代码表 group by 考试课程一代码) a,考试课程一代码表 b where a.考试课程一代码=b.考试课程一代码

解决方案 »

  1.   

    select 
    a.统计的字段名,
    a.代码,
    (select 代码中文含义 from TT where 代码=a.代码) 代码中文含义,
    a.统计
    from 
    (
    select '省市代码' 统计的字段名,省市代码 代码,count(*) 统计值 from T group by 省市代码
    union all 
    select '学历代码' 统计的字段名,学历代码 代码,count(*) 统计值 from T group by 学历代码
    union all 
    select '专业代码' 统计的字段名,专业代码 代码,count(*) 统计值 from T group by 专业代码
    ..............
    ) a其中中间部分可以有动态sql语句得到。
      

  2.   

    如果做报表,可以用reportbuilder生成交叉表
      

  3.   

    select a.name from syscolumns a,sysobjects b where a.id=b.id and b.name='T'
    可以获得字段名。
      

  4.   

    哦,我刚刚试了一下,不知道我这个语句写得对不对,我想统计每个系里各个专业中各个方向的人数,下面的语句对不对?
    SELECT 院系,专业,方向,COUNT(*) AS 人数 FROM 被统计的表  GROUP BY 院系,专业,方向如果把GROUP BY 后面的列名交换位置会有什么结果呢?
      

  5.   

    SELECT 院系,专业,方向,COUNT(*) 人数 FROM 被统计的表 GROUP BY 院系,专业,方向
      

  6.   

    大力
    你写的语句和我的一样,就说明我写的是正确的是不是?
    但是我问的那两个问题你没有说咯,呵呵,劳驾你再看看?!~1。如果我还想每个类别再做一个总数统计以及计算每一个类别的百分比又怎么来做呢???
    2。如果把GROUP BY 后面的列名交换位置会有什么结果呢?
      

  7.   

    结果不影响。如果要排序,可以加
    GROUP BY 院系,专业,方向 order by 院系 desc,专业,方向
      

  8.   

    你写的语句和我的一样,就说明我写的是正确的是不是?
    不,你用了全角,应该用半角1。如果我还想每个类别再做一个总数统计以及计算每一个类别的百分比又怎么来做呢???
    SELECT 院系,专业,方向,COUNT(*) 人数,COUNT(*)*100.0/(select count(*) from 被统计的表) 百分比 FROM 被统计的表 GROUP BY 院系,专业,方向2。如果把GROUP BY 后面的列名交换位置会有什么结果呢?
    那它先按前面的列先分组,结果应该一样的。
      

  9.   

    1。比如统计每个院系有好多人,这个院系里的某个专业有好多人,是不是要另外单独做了?
    SELECT 院系,COUNT(*) 人数,cast(cast(COUNT(*)*100.0/(select count(*) from 被统计的表) as numeric(10,2)) as varchar(10))+'%' 百分比 FROM 被统计的表 GROUP BY 院系2。但是你做的百分比不能用%号表示吗?