首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

求救啊SQL解决办法

2012-02-11 
求救啊,SQL有两个表A表 : iddate_ippcoden120000000JTF2011n245500000jtf1222B表 : idpiddata_ippcodeNo20

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

热点排行