例:
有一表 ABCfield_1  field_2   field_3
  1       001       90.00
  2       005       80.00
  1       005       -10.00
  2       001       20.00
  1       007       30.00
  2       001       -80.00
  2       007       90.00如何通过SQL查询生成如下(将field_1中的记录分类后,变为字段)????
field_1    1         2
001       90.00  (20.00-80.00)
005      -10.00     80.00
007       30.00    -80.00

解决方案 »

  1.   

    select field_2 as field_1,sum(case field_1 when '1' then field_2 else 0 end) as '1',sum(case field_1 when '2' then field_3 else 0 end) as '2'
    from ABC
    group by ABC具体方法可以参考:
    http://community.csdn.net/Expert/topic/3086/3086575.xml?temp=.5229914
      

  2.   

    这是交叉表的实现,
    select name,sum(case subject when '数学' then source else 0 end) as '数学',          sum(case subject when '英语' then source else 0 end) as '英语',            sum(case subject when '语文' then source else 0 end) as '语文' from test group by name
      

  3.   

    在SQL SERVER 能实现再问:是否能在 ACCESS 中也能实现呢???
      

  4.   


    TRANSFORM Sum(field_3) AS s
    SELECT a.field_2 AS field_1
    FROM ABC a
    GROUP BY field_2
    PIVOT a.field_1