Sql 基于将另一个表中的值与列表进行比较来更改一个表中的值
我在SQL Server 2014上有一个DB,它使用两个表来存储项目数据,PR和ProjectCustTabFields。它们共享一个名为WBS1的项目标识符列,我可以使用该列加入。大多数项目都有用WBS2标识的阶段,WBS2也在两个表中。我需要根据将第一个表中名为ProjectType的列的值与列表进行比较来更新第二个表中名为CustProjectGroup的列的值。例如,如果PR.ProjectType是98或99,我需要将ProjectCustTabFields.CustProjectGroup的值设置为ADM 到目前为止,我得到的是:Sql 基于将另一个表中的值与列表进行比较来更改一个表中的值,sql,sql-server-2014,Sql,Sql Server 2014,我在SQL Server 2014上有一个DB,它使用两个表来存储项目数据,PR和ProjectCustTabFields。它们共享一个名为WBS1的项目标识符列,我可以使用该列加入。大多数项目都有用WBS2标识的阶段,WBS2也在两个表中。我需要根据将第一个表中名为ProjectType的列的值与列表进行比较来更新第二个表中名为CustProjectGroup的列的值。例如,如果PR.ProjectType是98或99,我需要将ProjectCustTabFields.CustProjectG
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。这些阶段可能都有不同的项目类型,需要分配给不同的项目组
非常感谢您提供的任何帮助 您可以在项目类型上联接两个表吗?以查看更新的内容。。从中,您是否可以将更新…设置替换为选择*,这将让您了解更新的进展情况。请添加创建表架构和示例表格数据,以描述您拥有的数据和另一个具有预期结果的表。它非常简单,我必须加入第二个和第三个名为WBS2和WBS3的记录字段,然后它就工作了。