我这里有这样的一个库存
物品名称 地区 数量
aaa 地区1编码 1
aaa 地区2编码 2
aaa 地区3编码 4
aaa 地区4编码 6
bbb 地区2编码 3
bbb 地区3编码 8
这个地区字段里的地区编码是从另外的一个地区表里取过来的,不确定如何形成如下表格?物品名称 地区1 地区2 地区3 地区4 ... 数量合计
aaa ...
bbb
ccc
...
物品名称 地区 数量
aaa 地区1编码 1
aaa 地区2编码 2
aaa 地区3编码 4
aaa 地区4编码 6
bbb 地区2编码 3
bbb 地区3编码 8
这个地区字段里的地区编码是从另外的一个地区表里取过来的,不确定如何形成如下表格?物品名称 地区1 地区2 地区3 地区4 ... 数量合计
aaa ...
bbb
ccc
...
with t as(
select 'aaa'gname,'地区1编码' loc,1 amount from dual union all
select 'aaa','地区2编码',2 from dual union all
select 'aaa','地区3编码',4 from dual union all
select 'aaa','地区4编码',6 from dual union all
select 'bbb','地区2编码',3 from dual union all
select 'ccc','地区3编码',8 from dual)
select gname,wm_concat(loc) loc,sum(amount) sm
from t
group by gname;
GNAME WM_CONCAT(LOC) SM
----- ------------------------------------------------ ----------
aaa 地区1编码,地区2编码,地区3编码,地区4编码 13
bbb 地区2编码 3
ccc 地区3编码 8
--wm_concat()字符串连接函数应用于:10g,11g
SQL> with t as(
2 select 'aaa'gname,'地区1编码' loc,1 amount from dual union all
3 select 'aaa','地区2编码',2 from dual union all
4 select 'aaa','地区3编码',4 from dual union all
5 select 'aaa','地区4编码',6 from dual union all
6 select 'bbb','地区2编码',3 from dual union all
7 select 'ccc','地区3编码',8 from dual)
8 select gname,wm_concat(loc) loc,sum(amount) sm
9 from t
10 group by gname;GNAME LOC SM
----- -------------------------------------------------------------------------------- ----------
aaa 地区1编码,地区2编码,地区3编码,地区4编码 13
bbb 地区2编码 3
ccc 地区3编码 8