求SQL语句;不知道可不可以写出来;
姓名 类型 统计数量
A     1   10
A     2   5
B     1   10
B     2   5要求求出
姓名 统计数量
A     5
B     5其中按姓名进行统计的,但是同时还需要按类型区分加减,如果类型为1,则累加,如果类型为2,则需要减去;用的Access数据库;

解决方案 »

  1.   

    select 姓名,sum(case 类型 when 1 then 统计数量 else -统计数量 end) from 表 group by 姓名
      

  2.   

    create table #temp
    (姓名 varchar(10),
    类型 int,
    统计数量 int
    )
    insert into #temp
    select 'A','1','10' union all 
    select 'A','2','5' union all 
    select 'B','1','10' union all 
    select 'B','2','5'
    select * from #temp
    select 姓名,sum(case 类型 when 1 then 统计数量 when 2 then -统计数量 else 0 end) as 统计数量
    from #temp 
    group by 姓名-------------
    姓名 统计数量
    A     5
    B     5
      

  3.   

    上面是在SQL Server 2000里的语法,以下SQL语句适用于Access:SELECT [姓名],sum(iif([类型]=1,统计数量,-统计数量)) FROM T1 group by [姓名]
      

  4.   

    TO:libin_ftsafe(子陌红尘:当libin告别ftsafe)
    我在Access里面试了一下,怎么报错,说没有if函数?
      

  5.   

    谢谢;短消息回复;是iif函数;
      

  6.   

    Access支持iif函数,以上语句测试环境为 Access 2000 SP3 。