更新不同表中相关记录的值

时间:2018-06-24 18:44:38

标签: sql sql-server

我有四个不同的表连接在一起。我正在努力的是如何更新(或更改)两个不同列的值:属性和颜色。请记住,在我使用适当的UUID将它们加入之前,这两个项目位于两个不同的表中。

仅当Attribute =“ SetupType”和Color =“ Green”或“ Yellow”时才应进行更新(或更改值)

我想将这两个值更改为: 属性=“正常”, 颜色=“ 1” enter image description here enter image description here

SELECT        REC_ProdItem.ItemPath, REC_Recipe.Name, REC_ProdItemValue.Name AS Attribute, REC_RecipeValue.Value AS Color
FROM            REC_Recipe INNER JOIN
                         REC_RecipeValue ON REC_Recipe.RecipeUUID = REC_RecipeValue.RecipeUUID INNER JOIN
                         REC_ProdItem ON REC_RecipeValue.ProdItemUUID = REC_ProdItem.ProdItemUUID INNER JOIN
                         REC_ProdItemValue ON REC_ProdItem.ProdItemUUID = REC_ProdItemValue.ProdItemUUID AND 
                         REC_RecipeValue.ProdItemValueUUID = REC_ProdItemValue.ProdItemValueUUID
WHERE        (REC_ProdItemValue.Name = 'SetupType')

当前输出:

ItemPath    Name          Attribute     Color
Lane1   LDSSYSSA0022960   SetupType     Green
Lane7   OBS NLDSSYSSA0      Color        NULL
Lane3   OLD2768              Gap         NULL
Lane7   NLDSSYSSA0022L     SetupType     Red
Lane7   NLDSSYSSA0022LDSS   Size         Red
Lane1   LDSSYSSA00221254    SetupType    Red
Lane1   LDSSYSSA00221255    ID           Red
Lane1   LDSSYSSA00221351    SetupType   Yellow
Lane1   LDSSYSSA00221211    Size        Yellow

所需的输出:在将所有表连接在一起之前,更改也应反映在原始表中。

ItemPath    Name          Attribute     Color
Lane1   LDSSYSSA0022960     Normal        1
Lane7   OBS NLDSSYSSA0       Color       NULL
Lane3   OLD2768               Gap        NULL
Lane7   NLDSSYSSA0022L     SetupType     Red
Lane7   NLDSSYSSA0022LDSS    Size        Red
Lane1   LDSSYSSA00221254    SetupType    Red
Lane1   LDSSYSSA00221255      ID         Red
Lane1   LDSSYSSA00221351     Normal       1
Lane1   LDSSYSSA00221211      Size      Yellow

任何有关如何更改原始表上这两个值的帮助将不胜感激。 谢谢...

0 个答案:

没有答案