读书人

求救啊SQL解决办法

发布时间: 2012-02-11 09:51:35 作者: rapoo

求救啊,SQL
有两个表
A表 : id date_ip pcode
n1 20000000 JTF2011
n2 45500000 jtf1222
B表 : id pid data_ip pcodeNo
200 n1
201 n1
202 n1
203 n1
... ...
tf0 n2
tf1 n2
... ...
B表通过pid外键关联A表

我现在通过id 拿到了 data_ip ,和pcode
要求给B表同个pid 的记录按id的顺序赋予 pcodeNo=(pcode-流水号)
我原来这样写:结果是同个Pid 的pcodeNO都是一样的值
现在不知咋弄,求指教~~~~~~

SQL code
                    sql= " set nocount on "+                       " declare  @maxno varchar(10 )" +                       " exec GetSequence_bs 'B',6, @maxid out "+                       " exec GetSequence_bs B_"+ PID +"',2, @maxno out set "+                       "update B set data_ip='"+data_ip+"',pcodeNo='"+pcode+"-'+@maxno,"+                       "sendstate=1 where pid='"+id+"'";


[解决办法]
存储过程

Python code
BEGINFOR c IN    ( select 你的语句)LOOP    UPDATE table1    SET 你的字段=c.rn    WHERE 条件;END LOOP;COMMIT;END;
[解决办法]
BEGIN
FOR c IN
( select
count(pcodeNo) as cnt
,pid
from B
where 条件
group by
pid
order by
id )
LOOP
FOR j IN C.cnt LOOP
UPDATE B
SET pcodeNo=j
WHERE 条件;
END LOOP;

END LOOP;
COMMIT;
END;
具体PLSQL语法可能还要自己在调试

读书人网 >J2SE开发

热点推荐