我需要将表列更新为与该列中当前存在的数据相同的数据,以及从另一个表中的一列添加数据。有问题的表格是3N。
我试图通过将原则表中一列的数据汇总到现有表中的列来进行复杂的更新。
update Catelog.Component SET Name = p.Number
FROM Catelog.Part p JOIN
Catelog.ComponentPart cp ON p.ID = cp.PartID JOIN
Catelog.Component c ON cp.ComponentID = c.ID
where p.BrandID = 1003
AND ct.Name='Door' + '|'+ Name;
如果您注意到我正在设置的名称列,我将重置该列中已存在的数据以及为PartNumber添加前缀。
基本上我需要在Name列中为现有数据加上零件表中的零件号。
现在SQL正在给我一个模棱两可的错误。
另外,我不认为行的设置方式与我的结构更新有关。
这样做加入更新的最佳方法是什么?
答案 0 :(得分:2)
UPDATE c
SET c.Name = RTRIM(p.Number) + '|' + c.Name
FROM Catelog.Part AS p
INNER JOIN Catelog.ComponentPart AS cp
ON p.ID = cp.PartID
INNER JOIN Catelog.Component AS c
ON cp.ComponentID = c.ID
WHERE p.BrandID = 1003
AND ct.Name = 'Door|'+ c.Name;
答案 1 :(得分:2)
Update C
Set C.Name = CAST(p.Number as varchar(10)) + '|'+ C.Name
FROM Catelog.Component C
JOIN Catelog.ComponentPart cp
ON p.ID = cp.PartID
JOIN Catelog.Component c
ON cp.ComponentID = c.ID
where p.BrandID = 1003
AND ct.Name='Door' + '|'+ C.Name;
我不确定姓氏所在的位置(从哪个表开始,不清楚)
答案 2 :(得分:0)
你想这样做:
update Catelog.Component
SET Name = p.Number + '|'+ Name
FROM Catelog.Part p
JOIN Catelog.ComponentPart cp ON p.ID = cp.PartID
JOIN Catelog.Component c ON cp.ComponentID = c.ID
JOIN Catelog.Category ct ON p.CategoryID = ct.ID
where p.BrandID = 1003
AND ct.Name='Door';