2014-01-14 48 views
0

我有列RECID,regionID, areaID ,UserID ,AppNo, NextAppNo的表(接受空)多个操作

和数据如下(NextApp不为空的第一行中只有):

1,102,Ar-1,xyz,1,1 
2,102,Ar-1,qwe,2 
3,102,Ar-1,fgh,3 
4,102,Ar-1,yuyi,4 

1)添加记录

现在我要添加另一条记录:

  • 首先我得到APPID where areaID = Ar-1 and regionID =102(JAVA)的最大数量
  • 然后,如果最大appNo是0,加nextappNo,否则什么都不做
  • 然后插入到数据库

是否有可能做到这一点一个查询?

2)删除记录

在另一个查询我要删除第一个记录:

  • 首先,我选择数据where areaID = 'Ar-1' and regionID =102
  • 然后在一个循环(JAVA)我检查Recid是相同的ID我想删除
  • 从那里起我的审批,并同时更新列,如果我们要删除的记录有approverNO = 1,则也upda TE上的下一个审批下一条记录
  • 然后从表中删除的记录之一。
+0

为点#2为什么需要经历一个循环?你不能做出一个选择查询,以便你获取的行有一个recid =你必须删除并且有areaid ='Ar-1'和regionId = 102的行。 –

+0

你应该试着描述你真正想要达到的目标。你的描述在精神上是必要的,在SQL的上下文中有点混乱。 – Ingo

+0

@TheUnknown我必须更新apprNo例如,如果REC与aprpno 2删除超过弗罗姆有起apprNo 3成为apprNo 2和appNo 4变成3等,如果这是不是删除第一个审批也增加一个审批无到1 – Haider

回答

0

可以使用SQL过程来做到这一点。当你执行任何类型的操作,如插入,删除,更新等,其单一的程序会更容易,

+0

所以如果我这样做,我必须循环sp中的记录,以重新分配ApproverNo序列。 – Haider

+0

是的,但是使用单个sp,您可以执行尽可能多的操作。 – ashokramcse

+0

db2中可用的任何功能,我可以在这里为某些条件分配序列 – Haider