查询出来的结果为:
日期  分类  数量
12-1  牛   2
12-1  羊   1
12-2  猪   1如何将查询结果实现成如下呢?
日期   牛   羊   猪
12-1  2    1   0
12-2  0    0   1

解决方案 »

  1.   

    简单的思路是创建两个TO,比如
    AnimaTO_1(String date,String type,String count);
    PrintTO_1(String date,String type,String count);
    然后重写两个TO的toString() method();
      

  2.   

    我想你应该是问用sql如何实现吧?
    假设数据存在think_test表中:
    create table THINK_TEST
    (
      DATE_END VARCHAR2(20),
      TYPE     VARCHAR2(10),
      TOTAL    VARCHAR2(10)
    );
    自己插入数据后
    select * from think_test;DATE_END             TYPE       TOTAL
    -------------------- ---------- ----------
    12-1                 牛         2
    12-1                 羊         1
    12-2                 猪         1写一个sql如下:
    select date_end 日期,
           max(decode(type,'牛',cs,0)) 牛, 
           max(decode(type,'羊',cs,0)) 羊,
           max(decode(type,'猪',cs,0)) 猪
    from(
      select  t.date_end,t.type,sum(t.total) cs
      from think_test t
      group by t.date_end,t.type
      )
    group by date_end  ;
    并执行:
    日期                         牛         羊         猪
    -------------------- ---------- ---------- ----------
    12-1                          2          1          0
    12-2                          0          0          1这个sql有个缺点.要提前知道转换后有多少列.对于预先知道固定列的情况可以用.