求救啊,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语法可能还要自己在调试