1

我们正在从 excel 源获取数据并保存在临时表中,并使用带有存储过程的临时表更新目标表。我在目标表中遇到“评论”列的问题,如果有新评论出现,那么它应该预先添加到现有评论. 这里的谜语是目标表列是输入参数和一些字段以及注释的组合。例如:

[Target.Comments] = '[Manager ' + @Getdateparameter +'' + uploaded by + '] ' +Temp.comments + '' + Target.comments.

当今天有新纪录出现时,

Comment  =  [Manager1 May_9_2013 uploader1] robert is in canada

如果您在另一天再次运行并且评论中没有更新(它应该检查现有评论),那么

Comment  =  [Manager1 May_9_2013 uploader1] robert is in canada

如果 5 月 15 日的评论中有更新,那么应该是

Comment = [Manager1 May_15_2013 uploader1] robert is moved away from canada and now he is in US.[Manager1 May_9_2013 uploader1] robert is in canada

如何做到这一点?谢谢。

4

1 回答 1

1

您没有提供任何真实信息来实际为您编写代码(您是否在循环、插入单个语句等),但请尝试以下操作:

UPDATE y
    SET YourComment=t.NewValue+ISNULL('; '+y.YourComment,'')
    FROM YourTable                y
        INNER JOIN YourTempTable  t On y.PK=t.PK
    WHERE t.NewValue IS NOT NULL

我将其编码为在评论之间放置一个“;”,但如果没有必要,您可以删除。将“t.NewValue”替换为形成新注释的字符串连接。

这确实是一个模式问题。 您应该创建一个 Comments 表,在其中将不同的值拆分为它们自己的列,并且每个评论有一行。那时,您总是插入并且没有更新或连接。您可以使用视图或在应用程序处理中将它们组合起来以进行用户演示。

于 2013-05-09T17:53:57.693 回答