SQL查询结果的转换(比较棘手,忘高手解决)

evangoe 2013-09-23 10:10:54
现在从数据库查出如下格式的列表(表1):

店名 物名 数量
A 1 20
A 2 30
B 1 40
B 4 50
B 3 60
C 2 70

我如何将该列表转变为(表2):


店/物 1 2 3 4
A 20 30 0 0
B 40 0 60 50
C 0 70 0 0

其中A,B,C为商店名称;1,2,3,4为物品名称。

表一中的店面和物名是动态变化的,也就是表2的第一列和第一行是根据表一中具体的店面和物名二变化的。

我用的是MYSQL,如果能用函数解决最好,不能的话能不能用java硬写呢?
...全文
168 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
evangoe 2013-09-23
  • 打赏
  • 举报
回复
引用 5 楼 Partys 的回复:
还是用java写吧 step1 先查出物(对应第一行多少列) step2 再根据物查出对应的每个店的数量
貌似这能这样了!
partys 2013-09-23
  • 打赏
  • 举报
回复
还是用java写吧 step1 先查出物(对应第一行多少列) step2 再根据物查出对应的每个店的数量
evangoe 2013-09-23
  • 打赏
  • 举报
回复
引用 3 楼 xiuxiu2by 的回复:
如果物是固定的话,我知道怎么写,要是物是变化,不知道有多少的时候 我就不会了

select  t.shop,sum(t.show1) '1',sum(t.show2) '2',sum(t.show3) '3',sum(t.show4) '4'  from (select g.shop,case  when g.good= 1  then sum(g.sum)  else 0 end show1,
case  when g.good= 2  then sum(g.sum)  else 0 end show2,
case  when g.good= 3  then sum(g.sum)  else 0 end show3,
case  when g.good= 4  then sum(g.sum)  else 0 end show4
from good_inf  as g group by g.shop,g.good) t group by t.shop
是的呀,就是物资不定啊,有很多的物资呢
抱抱枯叶 2013-09-23
  • 打赏
  • 举报
回复
如果物是固定的话,我知道怎么写,要是物是变化,不知道有多少的时候 我就不会了

select  t.shop,sum(t.show1) '1',sum(t.show2) '2',sum(t.show3) '3',sum(t.show4) '4'  from (select g.shop,case  when g.good= 1  then sum(g.sum)  else 0 end show1,
case  when g.good= 2  then sum(g.sum)  else 0 end show2,
case  when g.good= 3  then sum(g.sum)  else 0 end show3,
case  when g.good= 4  then sum(g.sum)  else 0 end show4
from good_inf  as g group by g.shop,g.good) t group by t.shop
evangoe 2013-09-23
  • 打赏
  • 举报
回复
引用 1 楼 Partys 的回复:
没听明白 表二不是关系型数据库吧
结果集,表一是结果集,表二是想将表一处理后的到的结果。可以用sql,可以用java,设置可用excel,只要能将表一能够转换为表二的样式就OK了。
partys 2013-09-23
  • 打赏
  • 举报
回复
没听明白 表二不是关系型数据库吧

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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