专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » 数据库字段名:将嵌套查询结果的序号,保存到数据库的某个字段 »正文

数据库字段名:将嵌套查询结果的序号,保存到数据库的某个字段

来源: 发布时间:星期四, 2009年2月12日 浏览:73次 评论:0


今天遇到这样个需求现在有3张表T1T2T3条件将T1、T2联合查询的后结果 as A左连接T3根据ID分组、A.NAME排序将最终结果以WORD格式显示

WORD效果如下:

、NAME1

1、RESULT11

2、RESULT12

3、RESULT13

n、RESULT1n

2、NAME2

1、RESULT21

2、RESULT12

3、RESULT13

.

.

.

m、RESULT1m

用存储过程生成行号

create procedure auto_info_published

begin

DECLARE SQLCODE INTEGER DEFAULT 0;
DECLARE R_CODE INTEGER DEFAULT 0;
DECLARE brand_id DECIMAL(10);
declare tempBrandId decimal(10);

DECLARE BRAND_ID_CURSOR CURSOR FOR
select distinct sellor.BRAND_ID
from AUTO_SELLOR as sellor, ZX_WF_INSTANCE ,(select BRAND_ID from AUTO_BRAND as a , ZX_WF_INSTANCE as b
where BUSINESS_TYPE='1' and BRAND_ID = BUSI_ID and MODEL_CODE = 'MX001' and (ACTIVITY_CODE='JD004' or ACTIVITY_CODE='JD005')
and INSTANCE_STATE = 2 ) as c
where sellor.BRAND_ID=c.BRAND_ID and BUSINESS_TYPE='1' and SELLOR_ID = BUSI_ID and MODEL_CODE = 'MX003'
and ACTIVITY_CODE='JD004' and INSTANCE_STATE = 2;

open BRAND_ID_CURSOR;
Fetch BRAND_ID_CURSOR o brand_id;
R_CODE=SQLCODE;
while (R_CODE <> 100) do
tempBrandId = brand_id; ------这句很关键如果直接是insert.....values;这句可以不要insert.....select....;如果没有这句虽然循环次数没有错但将游标中所有brand_id取出来insert不能实现游标次只能取个值功能

insert o AUTO_SELLOR_PUBLISHED( SELLORPUBLISHED_ID, SELLOR_ID, BRAND_ID, SELLOR_NAME, REGISTRATION, SELLOR_PID,
ADDRESS, TRD_SCOPE, LINKMAN, TELEPHONE, MOBILE_TEL, START_DATE, END_DATE, INVALID_DATE, OFFICIAL_SYMBOL,
SELLOR_NUM_LIST, AREA, PROVINCE, BUSINESS_TYPE )
select nextval for SEQ, SELLOR_ID, BRAND_ID, SELLOR_NAME, REGISTRATION, SELLOR_PID,
ADDRESS, TRD_SCOPE, LINKMAN, TELEPHONE, MOBILE_TEL, START_DATE, END_DATE, INVALID_DATE, offSymbol,
rtrim(char(rownumber over(order by SELLOR_NAME))), AREA, PROVINCE, BUSINESS_TYPE
from AUTO_SELLOR ,ZX_WF_INSTANCE
where BRAND_ID = tempBrandId and BUSINESS_TYPE='1' and SELLOR_ID = BUSI_ID and MODEL_CODE = 'MX003' and ACTIVITY_CODE='JD004'
and INSTANCE_STATE = 2 ;

Fetch BRAND_ID_CURSOR o brand_id;
R_CODE=SQLCODE;
end while;
close BRAND_ID_CURSOR;
------nextval for SEQ:为DB2中ID通过sequents生成时insert值写法;

------rtrim(char(rownumber over(order by SELLOR_NAME))):为DB2中行号生成思路方法
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: