“[DB2/NT] SQL0952N 由于中断,处理被取消。 SQLSTATE=57014

现在在net程序中报错“[DB2/NT] SQL0952N 由于中断,处理被取消。 SQLSTATE=57014   


但在db2数据库中慢点,但不报错。
视图YuanGong_tong:

CREATE VIEW DB2ADMIN.YuanGong_tong
  AS with s as (
  select row_number()over(partition by fk_jk_id order by dbr_id) id1,   
  row_number()over(partition by fk_jk_id order by dbr_id) id2, mch,   
  fk_jk_id
  from DB2ADMIN.YUANGONG) , t(fk_jk_id,id1,id2,mch) as (
  select fk_jk_id,id1,id2,cast(mch as varchar(100))
  from s
  where id1 =1
  and id2=1
  union all
  select t.fk_jk_id,t.id1+1,t.id2,cast(s.mch||','||t.mch as varchar(100))
  from s, t
  where s.id2=t.id1+1
  and t.fk_jk_id = s.fk_jk_id ) select fk_jk_id,mch
  from t
  where t.id1= (
  select max(id1)
  from s
  where s.fk_jk_id = t.fk_jk_id)
表-员工表YuanGong,有8万条数据
列名:id fk_jk_id mch
建表语句:
CREATE TABLE DB2ADMIN.YUANGONG
(FK_JK_ID INTEGER,
  dbr_id INTEGER,
  MCH VARCHAR(100),
  id INTEGER NOT NULL GENERATED ALWAYS
  AS IDENTITY (START WITH 1, INCREMENT BY 1, CACHE 20, NO CYCLE, NO ORDER)
)

建好后,用视图查询比较慢,但用with语句直接查就能快点,有更好的办法吗?
with语句是不是效率低啊。如何让这个查询这个视图更快?或者有其他方法实现单FK_JK_ID相同,显示出所有mch为一个字段。
FK_JK_ID MCH
111 张三
111 李四
222 王五
333 理查德
111 酒法子
222 王六

显示为:
111 张三,李四,酒法子
222 王五,王六
333 理查德
参与3

2同行回答

a51gamera51gamer数据库管理员永科科技
如何改啊显示全部
如何改啊收起
2011-01-12
浏览415
jimmyjimmy数据仓库工程师招行软件中心
在.net里超时了吧显示全部
在.net里超时了吧收起
银行 · 2011-01-05
浏览400

提问者

a51gamer
数据库管理员永科科技

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2011-01-05
  • 关注会员:1 人
  • 问题浏览:6337
  • 最近回答:2011-01-12
  • X社区推广