SELECT LEFT(RIGHT([ID],5),2) AS 分局代码, SUM(decode(type,1,1,0)) AS 类型A, SUM(decode(type,2,1,0)) AS 类型B, SUM(decode(type,3,1,0)) AS 类型C, SUM(decode(type,4,1,0)) AS 类型D
FROM T_A
GROUP BY LEFT(RIGHT([ID],5),2);

解决方案 »

  1.   

    SELECT SUBSTR(A.ID,7,2) AS 分局代码,SUM(decode(type,1,1,0)) AS 类型A,
          SUM(decode(type,2,1,0)) AS 类型B,SUM(decode(type,3,1,0)) AS 类型C,
          SUM(decode(type,4,1,0)) AS 类型D
    FROM A
    GROUP BY SUBSTR(A.ID,7,2);
      

  2.   

    select substr(a.id,7,2) 分局代码,
    decode(type,1,'类型A',2,' 类型B',3,'类型C',4,' 类型D') 类型,count(1)
    group by substr(a.id,7,2),decode(type,1,'类型A',2,' 类型B',3,'类型C',4,' 类型D')
      

  3.   

    其实我这句话是用在Access中我现在的解决方法是
    SELECT LEFT(RIGHT([ID],5),2) AS 分局代码, (select COUNT([type]) from T_A where type=1 ) AS 类型A, (select count(type) from T_A where type=2) as 类型B,
    (select count(type) from T_A where type=3) as 类型C,
    (select count(type) from T_A where type=4) as 类型D
    FROM T_A
    GROUP BY LEFT(RIGHT([ID],5),2);但目前出来的结果也不是我想要的,因为我想把 GROUP BY LEFT(RIGHT([ID],5),2)放到子查询中

    (select count(type) from T_A where type=4 GROUP BY LEFT(RIGHT([ID],5),2) ) as 类型D这样就符合我的要求了,即结果是 分局代码  类型A   类型B  类型C   类型D
       13        1        1      1       1
       12        1        1      1       1而目前的结果是
     分局代码  类型A   类型B  类型C   类型D
       13        1        1      1       1
       13        1        1      1       1
       13        1        1      1       1
       13        1        1      1       1
       12        1        1      1       1
       12        1        1      1       1
       12        1        1      1       1
       12        1        1      1       1
      

  4.   

    在Oracle中decode确实可以 ,马上散分!
    不过,在 Access 中 decode好像不可用,怎么解决呢?
    可以再开贴!