姓名     分类     数量    日期小一      1       10    2012-1-1
小一      1       20    2012-1-4
小一      2       30    2012-1-20
小一      2       40    2012-1-21
小一      1       10    2012-3-1
小一      1       20    2012-3-4
小一      2       30    2012-4-20
小一      2       40    2012-4-21小一      1       10    2012-1-1
小一      1       20    2012-1-4
小一      2       30    2012-1-20
小一      2       40    2012-1-21
小一      1       10    2012-3-1
小一      1       20    2012-3-4
小一      2       30    2012-4-20
小一      2       40    2012-4-21
........上面的数据怎么生成下面的报表?月份       |           |            |            |            |       
分类       | 2012年1月 |  2012年2月 |  2012年3月 |  2012年4月 |  ....
---------------------------------------------------------------------
小一 |  1  |    30     |     0      |      70    |     0      |  .... 
     |  2  |    70     |     0      |      0     |     70     |  ....      
---------------------------------------------------------------------
小二 |  1  |    30     |     0      |      70    |     0      |  .... 
     |  2  |    70     |     0      |      0     |     70     |  ....      
---------------------------------------------------------------------

解决方案 »

  1.   

    干脆用php搞吧。等待sql达人出现
      

  2.   


    SELECT 姓名字段, 分类字段, (SELECT EXTRACT(YEAR_MONTH FROM t.日期字段)) AS mydate, SUM( 数量字段 ) AS sum FROM 表 t GROUP BY 姓名字段, 分类字段, mydate
      

  3.   

    用mysql_fetch_array()将查询数据放入数组,后面的格式排列,将数组值放进去就好了。另,
    没看明白这格式
      

  4.   


    <?php
    $conn = new Conn();
    $sql = "SELECT * from table group by month, name, type";
    $result = mysql_query($sql,$conn->connect());
    $arrUser = array();
    while ($arr = mysql_fetch_array($result)){
    array_push($arrUser,$arr);
    }
    return $arrUser;
    mysql_close();
    ?>
    <div>
      <p>月份:
      <?php
        foreach($arrUser as $user){
          echo $user['month']."|";
        }
      ?>
      </p>
      <ul>
        <li>姓名</li><li>分类</li>    
      <?php
        foreach($arrUser as $user){
      ?>
          <li><?=$user['name']?></li>|<li><?=$user['type']?></li>
      <?php
        }
      ?>
      </ul>
    </div>这会在浏览器中的输出,不知道你要的报表打印,是否一样。