数据库字段 IID、内容、类别、部门ID、年份这5个字段其中类别是固定的A、B、C、D4类,我现在想根据年份查询当前年份下,不同部门下的ABCD四类的个数,写了好久发现不行
如图,我想要的结果
Access数据库

解决方案 »

  1.   

    ACCESS的不清楚 
    SQL SERVER的可以用行转列
      

  2.   

    select
      部门,
      sum(case 类别 when 'A' then 1 else 0 end) as 'A',
      sum(case 类别 when 'B' then 1 else 0 end) as 'B',
      sum(case 类别 when 'C' then 1 else 0 end) as 'C',
      sum(case 类别 when 'D' then 1 else 0 end) as 'D'
    from
      tb
    group by
      部门
      

  3.   

    刚才应该是C类,抱歉写错了,以下是我写的,我执行的时候说是让我输入什么参数值,这个是access数据库
    select A,B,C,部门 from (select count(1) from RE001_成果一览 where 类别='论文数量') As A,
    (select count(1) from RE001_成果一览 where 类别='获奖情况') AS B, 
    (select count(1) from RE001_成果一览 where 类别='发表刊物数') AS C,
    (select 部门ID from RE001_成果一览 group by 部门ID) AS 部门 
      

  4.   

    select
      部门,
      sum(case 类别 when 'A' then 1 else 0 end) as 'A',
      sum(case 类别 when 'B' then 1 else 0 end) as 'B',
      sum(case 类别 when 'C' then 1 else 0 end) as 'C',
      sum(case 类别 when 'D' then 1 else 0 end) as 'D'
    from
      tb
    where
      year(年份)=year(getdate())
    group by
      部门
      

  5.   


    语法错误,操作符丢失,说是在 sum(case 类别 when 'A' then 1 else 0 end)中
      

  6.   


    select
      部门,
      sum(switch(类别='A',1,True,0)) as 'A',
      sum(switch(类别='B',1,True,0)) as 'B',
      sum(switch(类别='C',1,True,0)) as 'C',
      sum(switch(类别='D',1,True,0)) as 'D'
    from tablename where year(年份)=year(date())
    group by 部门
      

  7.   

    可能是mssql的语法不适用你的access
      

  8.   

    access中没有case when 用switch代替
    access中没有getdate() 用date()代替
    其他的我也不知道了...
      

  9.   


    恩恩,switch就可以了,谢啦叶子
      

  10.   

    access中有交叉表,直接用向导就可以生成
    TRANSFORM Count(T1.[ID]) AS ID之计算
    SELECT T1.[部门], Count(T1.[ID]) AS [总计 ID]
    FROM T1
    GROUP BY T1.[部门]
    PIVOT T1.[类别];
      

  11.   

    表T1
    ID 内容 类别 部门
    1 IID A 统计处
    2 B 统计处
    3 C 统计处
    4 D 统计处
    5 A 加贸处
    6 B 技术处
    7 C 财务处
    8 C 转关科
    9 B 财务处
    结果部门 总计 ID A B C D
    财务处 2 1 1
    技术处 1 1
    加贸处 1 1
    统计处 4 1 1 1 1
    转关科 1 1