交叉报表:
SELECT 所属行, 
    SUM(CASE 类型 WHEN "新制" THEN 卡数 ELSE 0 END) AS 新制,
    SUM(CASE 类型 WHEN "恢复" THEN 卡数 ELSE 0 END) AS 恢复,
    SUM(CASE 类型 WHEN "注销" THEN 卡数 ELSE 0 END) AS 注销
FROM 表
GROUP BY 所属行

解决方案 »

  1.   

    用case做最直接还有一种方法 ,但不推荐
    select 所属行,
    (select sum(卡数) from table where 类型="新制") AS 新制,,
    (select sum(卡数) from table where 类型=""恢复") AS 恢复,
    (select sum(卡数) from table where 类型="注销" ) AS 注销
    FROM 表
    GROUP BY 所属行
     
      

  2.   

    请问如何在VFOXPRO6。0里写这个语句呀,怎么老提求我函数名错呀谢谢我,我很急,我用FOXPRO编的,
      

  3.   

    对不起呀,是FOXPRO里没有回答我呀我没有办法了,我很急呀,这里高手多,帮帮我吧
      

  4.   

    FOXPRO应该没有CASE的这种用法,也有可能SUM函数上出的问题,查查联机帮助吧,反正用上面的思路是可行的。select 所属行,类型,sum(卡数) 卡数 from table group by 所属行,类型 order by 所属行,类型
    不知道这样的数据对你是否有点用。
      

  5.   

    foxpro?它本身就可以直接生成交叉表呀!
    具体语法不记得了,不过我记得似乎在向导中就有。
    用向导做一个,然后再看看人家是怎么样做的。