日期:2014-05-17  浏览次数:20626 次

从来没搞过Oracle的人在线等一sql语句
我现在有一个进出表a和出口表b
a表字段如下:
apl_name   (企业名称会大量重复)
hs_code(hs编码也会大量重复)
b表字段也是一样的
我现在有个需求就是
1,统计处出口表的每个企业出口过哪些hs_code
2,统计处进口表每个企业对中国出口过什么东西
最后结果如下:
海尔   01,02,03,04
就是说海尔出口过01和02和03和04这些编码并用逗号隔开以方便程序开发
这个肯定要用存储过程做我觉得

------解决方案--------------------
SQL> select * from test;


ID TME

---- ----------

A 1

B 1

C 1

D 1

E 1

F 2

G 2


已选择7行。


SQL> select tme, substr(max(sys_connect_by_path(id, ', ')), 2) catstr

2 from (select id, tme, row_number() over(partition by tme order by 1) rn

3 from test)

4 start with rn = 1

5 connect by rn - 1 = prior rn and tme = prior tme

6 group by tme;


TME CATSTR

---------- --------------------

1 A,B,C,D,E

2 F,G


SQL>
------解决方案--------------------
贊一個,學習中
------解决方案--------------------
我觉得既然是方便程序开发,那么程序员很容易处理这个逻辑,至于LZ要找SQL语句还真不知道找到后又怎么去方便程序开发。能否具体点