一个表 a
字段,
 id   FName    Tag      1    AAA      售票
 2    BBB      退票
 3    CCC      售票 
 4    DD       售票
 5    EEEE     退票
 6    CCC      售票 
 7    DD       退票
 8    EEEE     退票发何显示成
——————————————————————
        售票        |         退票
——————————————————————
  FName     张数    |         张数    
——————————————————————
  AAA         1               0
  BBB         0               1
  CCC         2               0
  DD          1               1
  EEEE        0               2

解决方案 »

  1.   

    用Cursor 和 变量来取。
    SQL Server中看帮助吧。
      

  2.   

    --测试数据
    create table tttt( id int, FName varchar2(100), Tag varchar2(100));
    insert into tttt
    select 1,'AAA','售票' from dual union all
    select 2,'BBB','退票' from dual union all
    select 3,'CCC','售票' from dual union all
    select 4,'DD','售票' from dual union all
    select 5,'EEEE','退票' from dual union all
    select 6,'CCC','售票' from dual union all
    select 7,'DD','退票' from dual union all
    select 8,'EEEE','退票' from dual;
    --执行查询
    select 
    fname,
    sum(case when Tag='售票' then 1 else 0 end) 售票,
    sum(case when Tag='退票' then 1 else 0 end) 退票
    from tttt
    group by fname
    --输出结果
    AAA 1 0
    BBB 0 1
    CCC 2 0
    DD 1 1
    EEEE 0 2
      

  3.   

    这个查询在sqlserver中也可以select
    fname,
    sum(case when Tag='售票' then 1 else 0 end) 售票,
    sum(case when Tag='退票' then 1 else 0 end) 退票
    from tttt
    group by fname