解决方案 »
- ORA-01008: 并非所有变量都已绑定
- 为什么wm_concat(distinct deptno) 在过程中不能使用呢?~很奇怪,单纯的SQL中是合适的~
- 猎头职位:赴新加坡工程师!挑战你自己!
- 借这里湿湿的人气,问一个功能的三个问题,期待oracle高手
- 帮忙看看怎么办吧
- 小弟這裡有個簡單問題..希望大家可以幫幫忙給點提示..(關於Form 的)..
- 有谁知道oci.dll是做什么的?
- 问几个很简单的问题,希望大家帮我。一个非技术类,一个基础类。
- updating 是什么?---一段触发器看不懂!
- 想问一个比较初级的问题:索引、游标在数据库中到底有什么用啊?
- 求好的sql语句
- 关于clob和blob数据类型的问题?
FROM TABLE
GROUP BY sws_dm ,sws_mc
select sws_dm,sws_mc,wm_concat(ry_mc) ry_mc,count(1) 总
from tb
group by sws_dm,sws_mc
select sws_dm,sws_mc,replace(wm_concat(ry_mc),',',';') ry_mc,count(1) 总
from tb
group by sws_dm,sws_mc
SQL> select * from test;
YDID SWS_DM SWS_MC RY_DM RY_MC
---------- ---------- ---------- ---------- ----------
1 1 第一税务所 100 张飞
2 1 第一税务所 101 赵云
3 1 第一税务所 102 马超
4 1 第一税务所 103 黄忠
5 1 第一税务所 104 关羽
6 2 第二税务所 200 程昱
7 2 第二税务所 201 贾诩
8 2 第二税务所 202 郭嘉
9 2 第二税务所 203 荀彧
10 2 第二税务所 204 荀攸
11 3 第三税务所 300 司马懿
12 3 第三税务所 301 曹洪
13 3 第三税务所 302 曹仁
14 3 第三税务所 303 夏侯渊
15 3 第三税务所 304 阿速达
16 4 第四税务所 401 黄月英
17 4 第四税务所 402 庞统
18 4 第四税务所 403 马岱
19 4 第四税务所 404 刘备
20 5 第五税务所 500 陆逊
20 rows selected
SQL>
SQL> SELECT sws_dm ,sws_mc,replace(wm_concat(ry_mc),',',';'),COUNT(1)
2 FROM test
3 GROUP BY sws_dm ,sws_mc;
SWS_DM SWS_MC REPLACE(WM_CONCAT(RY_MC),',',' COUNT(1)
---------- ---------- -------------------------------------------------------------------------------- ----------
1 第一税务所 张飞;赵云;马超;关羽;黄忠 5
2 第二税务所 程昱;贾诩;郭嘉;荀攸;荀彧 5
3 第三税务所 司马懿;阿速达;夏侯渊;曹洪;曹仁 5
4 第四税务所 黄月英;马岱;刘备;庞统 4
5 第五税务所 陆逊 1
SQL>
SQL> select * from test;
YDID SWS_DM SWS_MC RY_DM RY_MC
---------- ---------- ---------- ---------- ----------
1 1 第一税务所 100 张飞
2 1 第一税务所 101 赵云
3 1 第一税务所 102 马超
4 1 第一税务所 103 黄忠
5 1 第一税务所 104 关羽
6 2 第二税务所 200 程昱
7 2 第二税务所 201 贾诩
8 2 第二税务所 202 郭嘉
9 2 第二税务所 203 荀彧
10 2 第二税务所 204 荀攸
11 3 第三税务所 300 司马懿
12 3 第三税务所 301 曹洪
13 3 第三税务所 302 曹仁
14 3 第三税务所 303 夏侯渊
15 3 第三税务所 304 阿速达
16 4 第四税务所 401 黄月英
17 4 第四税务所 402 庞统
18 4 第四税务所 403 马岱
19 4 第四税务所 404 刘备
20 5 第五税务所 500 陆逊
20 rows selected
SQL>
SQL> SELECT sws_dm ,sws_mc,replace(wm_concat(ry_mc),',',';'),COUNT(1)
2 FROM test
3 GROUP BY sws_dm ,sws_mc;
SWS_DM SWS_MC REPLACE(WM_CONCAT(RY_MC),',',' COUNT(1)
---------- ---------- -------------------------------------------------------------------------------- ----------
1 第一税务所 张飞;赵云;马超;关羽;黄忠 5
2 第二税务所 程昱;贾诩;郭嘉;荀攸;荀彧 5
3 第三税务所 司马懿;阿速达;夏侯渊;曹洪;曹仁 5
4 第四税务所 黄月英;马岱;刘备;庞统 4
5 第五税务所 陆逊 1
SQL>
不好意思 ,oracle提示“SQL Error: ORA-00904: "WM_CONCAT": 无效的标识符”
SQL> SELECT sws_dm,sws_mc,ry_mc,总 FROM
2 (SELECT sws_dm,sws_mc,sYS_CONNECT_BY_PATH(ry_mc,';') ry_mc,LEVEL 总 ,CONNECT_BY_ISLEAF leaf
3 FROM test a
4 START WITH NOT EXISTS(SELECT 1 FROM test b WHERE a.sws_dm=b.sws_dm AND a.sws_mc=b.sws_mc AND b.ry_dm<a.ry_dm)
5 CONNECT BY NOCYCLE PRIOR sws_dm=sws_dm AND PRIOR a.ry_dm=ry_dm-1 )
6 WHERE leaf=1
7 ;
SWS_DM SWS_MC RY_MC 总
---------- ---------- -------------------------------------------------------------------------------- ----------
1 第一税务所 ;张飞;赵云;马超;黄忠;关羽 5
2 第二税务所 ;程昱;贾诩;郭嘉;荀彧;荀攸 5
3 第三税务所 ;司马懿;曹洪;曹仁;夏侯渊;阿速达 5
4 第四税务所 ;黄月英;庞统;马岱;刘备 4
5 第五税务所 ;陆逊 1
SQL>
10g:
select sws_dm, sws_mc, replace(wm_concat(ry_mc),',',';')ry_mc,count(*) 总人数
from tab
group by sws_dm, sws_mc;11g:
select sws_dm, sws_mc,
max(replace(substr(sys_connect_by_path(ry_mc, '*'), 2),'*',';')),count(*) 总人数
from(
select sws_dm, sws_mc,ry_mc,
dense_rank()over(order by sws_dm) + row_number()over(order by sws_dm) rid,
row_number() over (partition by sws_dm order by sws_dm) nid
from tab)
start with nid = 1
connect by prior rid = rid - 1
GROUP BY sws_dm,sws_mc;
SQL> SELECT sws_dm,sws_mc,ry_mc,总 FROM
2 (SELECT sws_dm,sws_mc,sYS_CONNECT_BY_PATH(ry_mc,';') ry_mc,LEVEL 总 ,CONNECT_BY_ISLEAF leaf
3 FROM
4 (SELECT YDID ,SWS_DM, SWS_MC , RY_DM, RY_MC,row_number()over(PARTITION BY sws_dm ORDER BY ry_dm) rn FROM test )a
5 START WITH NOT EXISTS(SELECT 1 FROM test b WHERE a.sws_dm=b.sws_dm AND a.sws_mc=b.sws_mc AND b.ry_dm<a.ry_dm)
6 CONNECT BY NOCYCLE PRIOR sws_dm=sws_dm AND PRIOR a.rn=rn-1 )
7 WHERE leaf=1 ;
SWS_DM SWS_MC RY_MC 总
---------- ---------- -------------------------------------------------------------------------------- ----------
1 第一税务所 ;张飞;赵云;马超;黄忠;关羽 5
2 第二税务所 ;程昱;贾诩;郭嘉;荀彧;荀攸 5
3 第三税务所 ;司马懿;曹洪;曹仁;夏侯渊;阿速达 5
4 第四税务所 ;黄月英;庞统;马岱;刘备 4
5 第五税务所 ;陆逊 1
SQL>
SQL> SELECT sws_dm,sws_mc,ry_mc,总 FROM
2 (SELECT sws_dm,sws_mc,sYS_CONNECT_BY_PATH(ry_mc,';') ry_mc,LEVEL 总 ,CONNECT_BY_ISLEAF leaf
3 FROM
4 (SELECT YDID ,SWS_DM, SWS_MC , RY_DM, RY_MC,row_number()over(PARTITION BY sws_dm ORDER BY ry_dm) rn FROM test )a
5 START WITH rn=1
6 CONNECT BY NOCYCLE PRIOR sws_dm=sws_dm AND PRIOR a.rn=rn-1 )
7 WHERE leaf=1 ;
SWS_DM SWS_MC RY_MC 总
---------- ---------- -------------------------------------------------------------------------------- ----------
1 第一税务所 ;张飞;赵云;马超;黄忠;关羽 5
2 第二税务所 ;程昱;贾诩;郭嘉;荀彧;荀攸 5
3 第三税务所 ;司马懿;曹洪;曹仁;夏侯渊;阿速达 5
4 第四税务所 ;黄月英;庞统;马岱;刘备 4
5 第五税务所 ;陆逊 1
SQL>