我在SQL Server 2014上有一个数据库,它使用两个表来存储项目,PR和ProjectCustTabFields上的数据。它们共享一个名为WBS1的项目标识符列,我可以使用它来加入。大多数项目都有使用WBS2标识的阶段,WBS2也在两个表中。我需要更新第二个表中名为CustProjectGroup的列的值,这是基于比较第一个表中名为ProjectType的列与列表的值。因此,例如,如果PR.ProjectType是98或99,我需要将ProjectCustTabFields.CustProjectGroup的值设置为ADM。
这是我到目前为止所得到的:
update ProjectCustomTabFields
SET CustProjectGroup = 'ADM'
FROM PR
INNER JOIN ProjectCustomTabFields
ON pr.WBS1=projectcustomtabfields.wbs1
WHERE pr.ProjectType in (98,99)
问题是,这是查看WBS1的第一条记录,根据项目类型分配项目组,然后它将相同的项目组分配给具有相同WBS1的所有后续记录,尽管它们可能有不同的项目类型值。
因此,例如,我可能有4条记录具有相同的WBS1,因为它们是针对单个项目的。总体项目的记录将没有WBS2,每个阶段的记录将具有1,2和3的WBS2。这些阶段可能都具有需要分配给不同项目组的不同项目类型。
非常感谢您提供的任何帮助。