高难度问题

chinabdx 2008-12-26 12:02:06
查询出来的结果为:
日期 分类 数量
12-1 牛 2
12-1 羊 1
12-2 猪 1

如何将查询结果实现成如下呢?
日期 牛 羊 猪
12-1 2 1 0
12-2 0 0 1
...全文
88 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
micsolaris 2008-12-26
  • 打赏
  • 举报
回复
简单的思路是创建两个TO,比如
AnimaTO_1(String date,String type,String count);
PrintTO_1(String date,String type,String count);
然后重写两个TO的toString() method();
qinjisheng 2008-12-26
  • 打赏
  • 举报
回复
2楼的不太实际吧,如果是SQL实现的话可考虑建立幻表先保存分类与数量,然后再查询
mumu_java 2008-12-26
  • 打赏
  • 举报
回复
我想你应该是问用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有个缺点.要提前知道转换后有多少列.对于预先知道固定列的情况可以用.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧