分组统计功能结果如下:
公司    产品     数量
A       GOOD1    100
A       GOOD2    10
B       GOOD1    102
B       G00D2    20如何转换成横向显示如下
产品    A    B  
GOOD1   100  102  
GOOD2   10   20

解决方案 »

  1.   

    select 产品,sum(if(产品='A',数量,0)) AS  A ,sum(if(产品='B',数量,0)) AS  B
    frOm tt group by 产品
      

  2.   


    if(公司='A'...吧。
    如果公司是动态的如何做呢?
      

  3.   

    那就要用SP生成SQL语句,再动态执行 
      

  4.   

    那么建议就通过程序生成这样的报表。
    SELECT count(*), 公司,产品 FROM 表 WHERE ... GROUP BY 公司,产品强烈反对,万一公司有3000个,select 3000个列???!!!
      

  5.   

    参考下贴中的各种实现方法http://blog.csdn.net/ACMAIN_CHM/archive/2009/06/19/4283943.aspx
    MySQL交叉表
      

  6.   

    donetboy328 (咖啡豆)
      '截至2010-05-06 09:30:31  用户结帖率76.92%  总发帖:91  正常结帖:18  未结帖:21  
    当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
    http://topic.csdn.net/u/20100428/09/BC9E0908-F250-42A6-8765-B50A82FE186A.html
      

  7.   

    SELECT '产品', 
    SUM(CASE '公司' WHEN 'A' THEN '数量' ELSE '' END) AS A,
    SUM(CASE '公司' WHEN 'B' THEN '数量' ELSE '' END) AS A
    FROM test
    GROUP BY '公司'