我正在尝试使用Sales表中的数据在Costumer表中追加值。 客户可以在Sales表中拥有多条记录: 特此加入观点:
SalesID CostumerID SalesComment CostumerComment
1 14 Com1 Costumer Comment 1
2 15 Com2 Costumer Comment 2
3 14 Com3 Costumer Comment 1
4 14 Costumer Comment 1
我想进行这样的更新:
UPDATE Costumer
SET Costumer.ShopBookKommentar = cast ([ShopBookKommentar] as nvarchar(max))
+ CAST(CHAR(13)+CHAR(10) + S.Comments as nvarchar(max))
FROM Costumer C INNER JOIN
Sales S
ON S.CostumerID = c.ID
但它没有更新其中一个销售行注释字段为空的任何Costumer行('')
答案 0 :(得分:1)
看起来您正在使用SQL Server。您需要使用update
的表别名:
UPDATE c
SET ShopBookKommentar = c.ShopBookKommentar + CHAR(13) + CHAR(10) + S.Comments
FROM Costumer C INNER JOIN
Sales S
ON S.CostumerID = c.ID;
如果由于某种原因中间结果不够大,您只需要cast()
。但那应该不是问题。
编辑:
我猜你确实想要从Sales
的不同行应用多个评论。这有点棘手:
UPDATE c
SET ShopBookKommentar = c.ShopBookKommentar + c.somm
FROM (SELECT c.*,
(SELECT CHAR(13) + CHAR(10) + S.Comments
FROM Sales s
WHERE S.CostumerID = c.ID AND
S.Comments IS NOT NULL
FOR XML PATH, TYPE
).value(N'.[1]', N'varchar(max)') as scomm
FROM c
) Costumer C INNER JOIN
(Sales S
ON ;