这样的统计如何写(sql)急!!!

yinzhiw 2005-07-15 09:18:45
现有如下结构表 产品表 product
id name parent_id
----------------------------
001 电子类 0
002 金属类 0
004 电子电容 001
005 电子电阻 001
006 有色金属 002
007 无色金属 002

消耗表 consume
id num
----------------
004 50
005 125
006 39
007 12

要统计得到如下结果:
id name num
----------------------------
001 电子类 175
004 电子电容 50
005 电子电阻 125
002 金属类 51
006 有色金属 39
007 无色金属 12

问:如何得到上面所列的统计结果?(即统计结果中有父类的合计同时还得在他的先面列出子类)
...全文
204 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
沝林 2005-07-15
  • 打赏
  • 举报
回复
SQL> select a.id,a.name,
2 (select sum(num) from product b,consume c
3 where b.id = c.id(+) start with b.id = a.id
4 connect by prior b.id = b.parent_id) num
5 from product a start with parent_id = 0 connect by prior a.id = a.parent_id;

ID NAME NUM
---------- -------------------- ----------
001 电子类 175
004 电子电容 50
005 电子电阻 125
002 金属类 51
006 有色金属 39
007 无色金属 12

已选择6行。
沝林 2005-07-15
  • 打赏
  • 举报
回复
SQL> select a.id,a.name,
2 (select sum(num) from product b,consume c
3 where b.id = c.id(+) start with b.id = a.id
4 connect by prior b.id = b.parent_id) num
5 from product a;

ID NAME NUM
---------- -------------------- ----------
001 电子类 175
002 金属类 51
004 电子电容 50
005 电子电阻 125
006 有色金属 39
007 无色金属 12

已选择6行。
辉说慧语 2005-07-15
  • 打赏
  • 举报
回复
mark
pottichu 2005-07-15
  • 打赏
  • 举报
回复
select p_id,[name],sum(num)as num from (
select a.p_id,c.name,b.num from product a inner join consume b
on a.id=b.id inner join product c on a.p_id=c.id
union
select a.id,a.name,b.num from product a inner join consume b
on a.id=b.id ) m
group by p_id,[name]
order by p_id
yinzhiw 2005-07-15
  • 打赏
  • 举报
回复
楼上的好像不能满足我的要求
你的结果是
001 电子类 175
002 金属类 51
004 电子电容 50
005 电子电阻 125
006 有色金属 39
007 无色金属 12
但是我要的是 004,005 是001的子类它必须显示在001 合计的下面
tcmis 2005-07-15
  • 打赏
  • 举报
回复
select a.id,a.name,nvl((select sum(num) from consume where id in (select id from product where parent_id = a.id)),0) + nvl((select sum(num) from consume where id = a.id),0) from product a;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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