2009-08-27 85 views
0

我正在使用SQL查询,下面是表格。更新父项及其所有记录中的子项sql

组织

OrgID Name   RAOGID  RAOID SubGroupID StatusID 
1  Org RAOG1  1 NULL  NULL    2 
2  Org RAO1   NULL  1  NULL  3 
3  Org Sub Group1 NULL  NULL   1  1 
4  Org RAOG2  2 NULL  NULL    2 
5  Org RAO2   NULL  2  NULL  3 
6  Org Sub Group2 NULL  NULL   2  2 

RAOG

RAOGID AccredID 
1    2 
2    2 
3    2 

RAO

RAOID RAOGID 
1   1 
2   3 
3   3 

子组

SubGroupID RAOID 
1   1 
2   2 
3   2 

我有四个表如上所示,这里是他们的细节, 1)每RAOG,RAO和子组是一个组织 2)RAOG可以有许多RAOS 3)RAO可以具有许多SubGroups

我想在更新之前更新我的组织表statusid我想检查它是否是RAOG类型的组织,然后它将更新其下的所有RAO和SUBGROUP,并且与RAO相同它将更新所有的SUBGROUP在他下面它不会更新它的父RAOG。最后如果它是SUBGROUP类型的组织,它只会更新子组而不是它的子组父记录。

感谢, 最好的问候, 马诺

+0

什么是DBMS? Oracle,SQL Server,MySQL,还有其他的东西? – 2009-08-27 11:27:38

+0

我正在使用SQL Server – 2009-08-27 11:40:50

+0

嗨,杰夫,你能帮我在这 – 2009-08-27 13:05:43

回答

1

这最好通过包装检查来达到的,并要求你要制作成一个存储过程,你就可以在事务内执行。

CREATE PROCEDURE [dbo].[MySprocOfDoom] 

@param1    paramType, 
    --... 
AS 
BEGIN 
SET NOCOUNT ON; 
    --SELECT statements here 
END 
+0

你可以请写代码,因为我不能写它的SQL代码 – 2009-08-27 11:42:47

+0

那么也许你应该没有给你一份工作,你需要编写SQL – 2009-08-27 11:49:48

+0

亲爱的我问上述问题的逻辑代码,我非常了解SQL语法,我有点困惑,我怎么能得到上述结果。我们可以使用功能或程序。请给我实际的sql代码? – 2009-08-27 12:09:37

相关问题