我希望任何人都能对这个问题提出任何意见。我有两个完全相同的数据集,但一个比另一个大。基本上,我想查看较小数据集(andrat_appen)中的任何变量是否具有某个值'A'。如果是这种情况,我想更新更大的数据集(“andrat_APP_GENKORR”,完全相同的帖子,基于一些ID变量)与另一个值'AG'。
如果较小数据集中的变量中没有像'A'这样的值,给定ID变量的集合,那么大数据集中的相同单元格就不会发生任何事情。
关于如何解决它的任何建议?
UPDATE A
SET A.[ANDRAT_Vkod] = case when B.[ANDRAT_Vkod] = 'A' then 'AG' else A.[ANDRAT_Vkod] end,
A.[ANDRAT_timlon] = case when B.[ANDRAT_timlon] = 'A' then 'AG' else [ANDRAT_timlon] end
FROM [dbo].[andrat_APP_GENKORR] A
LEFT JOIN (SELECT EnhetsId, pnr, Etikett FROM [dbo].[andrat_appen]) B
ON A.EnhetsId = B.EnhetsId AND A.pnr = B.pnr AND A.Etikett = B.Etikett
答案 0 :(得分:0)
解决了!解决方案是:
UPDATE A
SET A.[ANDRAT_Vkod] = (case when B.[ANDRAT_Vkod] = 'A' then 'AG' else A.[ANDRAT_Vkod] end),
A.[ANDRAT_timlon] = (case when B.[ANDRAT_timlon] = 'A' then 'AG' else A.[ANDRAT_timlon] end)
FROM [dbo].[andrat_APP_GENKORR] A
LEFT JOIN [dbo].[andrat_appen]) B
ON A.EnhetsId = B.EnhetsId AND A.pnr = B.pnr AND A.Etikett = B.Etikett