更新查询中具有多个匹配项的行

2023-11-25

给出如下更新语句:

UPDATE
     UserAssesment
SET
     AssessmentDate = comp.AssessmentDate     
FROM
     UserAssesment ua
INNER JOIN 
    vw_CompletedAssessments comp
On 
    ua.NatId = comp.NatId and
    ua.FamilyName = comp.ClientLastName and
    ua.GivenName = comp.ClientFirstName

WHERE
     ua.HasCompletedAssessment <> 0

如果用户可以有多个与 join 子句匹配的记录vw_CompletedAssessments,哪条记录将用于更新?有没有办法订购它,以便最大或最小AssessmentDate用来?


您的 UPDATE 语法需要一些调整,如下所示:

UPDATE ua
SET
     ua.AssessmentDate = comp.AssessmentDate     
FROM  UserAssesment ua
INNER JOIN  vw_CompletedAssessments comp
ON  ua.NatId = comp.NatId and
    ua.FamilyName = comp.ClientLastName and
    ua.GivenName = comp.ClientFirstName
WHERE ua.HasCompletedAssessment <> 0

现在,如果您有多个值并且想要从 Comp 表中选择一个特定值,您可以使用 ROW_NUMBER 函数,如下所示...

UPDATE ua
SET
     ua.AssessmentDate = comp.AssessmentDate     
FROM  UserAssesment ua
INNER JOIN  (SELECT * 
            , ROW_NUMBER() OVER (PARTITION BY NatId ORDER BY AssessmentDate DESC) rn 
            FROM vw_CompletedAssessments) comp
ON  ua.NatId      = comp.NatId 
and ua.FamilyName = comp.ClientLastName 
and ua.GivenName  = comp.ClientFirstName
WHERE ua.HasCompletedAssessment <> 0
AND Comp.rn = 1

此查询会将 ua.AssessmentDate 更新为特定 NatId 的最新 comp.AssessmentDate。同样,您可以看到如何使用行号来操作结果。如果您想将其更新为最旧的 comp.AssessmentDate 值,只需将 row_number() 函数中的 order by 子句更改为 ASC 等等......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更新查询中具有多个匹配项的行 的相关文章

  • TSQL 返回 NO 或 YES,而不是 TRUE 或 FALSE

    如果某些列返回 FALSE 如何显示不同的值 例如 COLUMN BASIC 返回 FALSE 但我需要向用户显示 YES 或 NO 情况为 FALSE 返回 NO 如果是 varchar 或 bit 则处理 NULL case when
  • 插入后用触发器更新多行(sql server)

    我有一个表 orderDetails 包含订单的产品 产品编号 color size quantity 和一个表库存 产品编号 size color stock 订单完成后 我使用此查询将项目插入表中orderDetails INSERT
  • 如何从经典 ASP 读取 SQL Always-加密列

    我维护一个经典的 ASP 应用程序 是的 我知道 我们正在开发它 并且需要访问 SQL 2017 中的 Always Encrypted 列 我已经导入了证书并在 SSMS 和 PowerShell 中进行了测试 这很有效 我在 ASP 中
  • SQL Server freetexttable 部分单词

    我第一次使用 SQL 自由文本搜索 我有点困惑为什么它会这样 我有一个联系人表 用户可以搜索并且我正在使用 SELECT Contacts Rank FROM FREETEXTTABLE Contacts O Roarty AS Conta
  • 设置 xact_abort 并尝试一起捕获

    我的 sp 中有一个 try catch 块 其中只有一条插入语句 catch 检查错误代码是否违反 pk 如果是则进行更新 但有时我得到 当前事务无法提交 并且无法支持写入日志文件的操作 回滚事务 在批处理结束时检测到不可提交的事务 事务
  • 使用 Switch 的报告服务表达式

    我无法让这个表达式与报告服务一起使用 我必须使用 IF 和 ELSE IF 语句 感谢您的任何建议 Switch IsNothing Fields field date Value Fields set flag Value 1 Decli
  • 如何在 SQL Server 中的特定字符后分割字符串并将该值更新到特定列

    我有包含数据的表格1 1 to 1 20在一列中 我想要值 1 到 20 即 前斜杠 之后的值更新到 SQL Server 中同一表中的其他列 Example 专栏有价值1 1 1 2 1 3 1 20新列值1 2 3 20 也就是说 我要
  • 如何在SSRS 2012中显示基于总金额的前10名

    我只需要显示前 10 名Class基于Total SUM Premium 柱子 我转到类代码属性组 gt 过滤器并按 SUM Net Written Premium 设置前 10 名 但它不起作用 我只需要显示前 10 名 而且总金额也应该
  • Scrapy - 如何抓取网站并将数据存储在 Microsoft SQL Server 数据库中?

    我正在尝试从我们公司创建的网站中提取内容 我在 MSSQL Server 中为 Scrapy 数据创建了一个表 我还设置了 Scrapy 并配置了 Python 来抓取和提取网页数据 我的问题是 如何将Scrapy爬取的数据导出到我本地的M
  • 在 SQL Server 中处理日期

    我正在开发一个 ASP NET 网站 我从网页获取日期 然后根据用户输入我想从 SQL Server 数据库获取结果 使用存储过程 问题是我只能从用户界面获取这种格式的日期2016 10 08这是字符串类型 但在数据库中 我有一个类型为da
  • 拆分列中的字符串并在列中添加值

    我有一个包含几行数据的表 如下所示 16 W 2 Work ALBO 00 Proposal ALxO Amendement 1 20091022 signed pdf 17 W 2 Work ALBO 00 Proposal Level1
  • 在 Sql Server 中转换为日期时间 MM/dd/yyyy HH:mm:ss

    如何将给定的日期格式转换为MM dd yyyy HH mm ss 我尝试了下面这个但没有实现 谁能帮我 SELECT CONVERT VARCHAR 20 GETDATE 120 SQL Server 2005及以上版本支持 SELECT
  • C#的数组列表可以用来填充SSIS对象变量吗?

    我已在 C 脚本中填充了一个列表 并将其值分配给 SSIS 对象变量 然后 我使用该对象变量通过循环遍历 For every do 枚举器来执行一些 SQL 查询 我尝试通过 Foreach ado 枚举器执行此操作 但出现错误 X 变量不
  • 为什么我的 CASE 语句要求 THEN 部分的数据类型为 INT?

    我正在尝试运行一个查询 其中以下 CASE 语句是其中一行 我正在使用报表生成器 3 0 但是 我收到一条错误消息 将 varchar 值 Case 1 转换为 int 数据类型时转换失败 Microsoft SQL Server 错误 2
  • 如何获得顶部带有千位分隔符的数字?

    SELECT count FROM table A 假设结果是8689 我怎样才能将它转换为8 689在 SQL Server 上 尝试这样 select replace convert varchar convert Money coun
  • 如何跨多个表强制执行 CHECK 约束

    我有一个在 Microsoft SQL Server 2012 Express 中记录奶牛繁殖信息的数据库 显然 一头牛只有在出生后才能配种 并且在其一生中可能会配种多次 我需要在我的数据库中强制执行这些约束 我目前已经根据下图安排了一个架
  • SQL 国家字符 (NCHAR) 数据类型的真正用途是什么?

    也CHAR CHARACTER and VARCHAR CHARACTER VARYING SQL 提供了NCHAR NATIONAL CHARACTER and NVARCHAR NATIONAL CHARACTER VARYING 类型
  • Visual Studio 2010 中的数据库设计器

    我需要创建一个全新的 Sql Server 2008 数据库 并希望使用 Visual Studio 2010 Ultimate 中的数据库项目 我已经创建了该项目并在下面添加了一个表格dbo架构 桌子 sql仅以纯文本形式显示 但带有颜色
  • 如何修改现有表以添加时区

    我有一个包含 500 多个表的大型应用程序 我必须将应用程序转换为时区感知 当前应用程序使用new java util Date GETDATE 与服务器的时区 即没有任何时区支持 我已将这项任务分为几个步骤 以便于开发 我确定的第一个步骤
  • VB6+SQL-Server:如何使用 ADODB.Command 执行带有命名参数的查询?

    我一直在尝试使用 ADODB Command 执行参数化查询 我知道我可以使用 对于参数 但我的查询相当大 我真的不想跟踪参数的确切顺序 我尝试了类似以下的操作 objCmd CommandType adCmdText objCmd Com

随机推荐

  • 使用java从服务器端检测浏览器版本

    我看到很多与浏览器检测 用户代理检测等相关的帖子 我想从服务器端检测版本并基于此发送适当的数据 我知道浏览器可以使用工具模仿版本 但这对我来说并不重要 我需要 java 解决方案来进行准确的版本检测 这是解释如何使用的代码用户代理实用程序
  • exc 错误访问代码 2

    过去三天我一直在与这个错误作斗争 但没有运气 我正在开发一个组合应用程序uiviewcontrollers and uitableviewcontrollers在表视图中 我单击 添加 按钮 它崩溃了 尚未添加核心数据编码 我什至已经启用N
  • 文件选择器在 Windows 上不接受 mimetype 'text/csv'

    我正在使用 filepicker 并设置 text csv 上传的 mimetype 它在 Mac chrome 上运行得很好 但在 Windows 上则不然 知道如何解决这个问题吗 谢谢 Ace 也尝试替代的模仿类型 text comma
  • 使用 BinData 进行 MongoDump 查询

    Mongodump 文档指定您可以使用特定查询进行转储 i e mongodump host localhost db mydb collection testCollection query SomeKey some value 我将 i
  • 将 UIImage 剪成圆形

    我想剪一个UIImage成一个圆圈 以便我可以将其用作注释 我在这个网站上找到的每个答案都描述了创建一个UIImageView 然后修改它并显示它 但你不能将注释的图像设置为UIImageView 只有一个UIImage 我该怎么办 Xco
  • Asp.Net MVC 生命周期[重复]

    这个问题在这里已经有答案了 可能的重复 与 ASP NET WebForms 相比 ASP NET MVC 页面的 页面生命周期 是怎样的 如果专家能够向我指出 ASP Net MVC 生命周期 我将不胜感激 我有兴趣知道一旦请求到来并发送
  • toSet 和类型推断

    有人可以解释为什么以下不起作用 当我这样做时 不知怎的会丢失编译类型推断的一些信息toSet 但我不明白为什么 scala gt case class Foo id Int name String defined class Foo sca
  • 如何在 Java 中填充数组?

    我知道如何正常执行此操作 但我可以发誓您可以填写如下 a 0 0 0 0 0 你是怎么做到的 我确实尝试过谷歌 但没有得到任何有用的信息 查看数组 fill方法 int array new int 4 Arrays fill array 1
  • 如何更改R中的矩阵列类型

    我有一个矩阵 我想将第五列类型从字符更改为数字 但我不能 我已经尝试过这个 test1 5 lt as numeric test1 5 但同样 列类是字符而不是数字 我应该怎么办 谢谢 就像 Marius所说 矩阵只能保存一种数据类型 您可
  • 在一个函数调用中向 R data.table 添加多列?

    我有一个返回列表中两个值的函数 这两个值都需要添加到 data table 的两个新列中 函数的评估成本很高 因此我想避免计算函数两次 这是例子 library data table example data table DT x y v
  • 如何使用 Xpath 1.0 比较字符串?

    我遇到了一个问题
  • 使用 SQL 查询进行 XML 解析

    我正在尝试解析 sql server 中的以下 xml 以获取所有 3 个 Id
  • 停止重复使用自定义单元 Swift

    我有一个uitableview使用从数组获取数据的自定义单元格 定制单元有一个uilabel and an uibutton 直到uilabel文本或为文本加载的数组对象 为零 启动时一切都很好 当我按下uibutton正在追加数组 新单元
  • DataAdapter:更新无法找到 TableMapping['Table'] 或 DataTable 'Table'

    此代码片段引发错误 更新无法在适配器上找到 TableMapping Table 或 DataTable Table Update ds 线 为什么它会抛出这种类型的错误 SqlConnection con new SqlConnectio
  • 无法从打印的 html 文件查看 gvisMotionChart

    当我将动态图表的代码保存到 html 文件并尝试打开它时 我看到页脚 并且 正在初始化 进度条闪烁了一瞬间 但没有显示任何其他内容 so M1 lt gvisMotionChart Fruits idvar Fruit timevar Ye
  • 如何从模板访问对象的属性?

    根据http handlebarsjs com expressions html 我应该能够做到这一点 h1 article title h1 但我似乎无法让它在流星中工作 这是我的模板
  • C# 中的数据透视表

    我需要在 net 中创建一个数据透视表 不能使用任何第三方控件 除非它是免费的 我试图找到解释如何创建数据透视表 算法或步骤 的文档 但几乎所有内容都与 Excel 相关 有谁知道如何在 C 中创建数据透视表 谢谢 在这里帮忙http ms
  • rabbitmq 队列上有多个消费者 - 只有一个消费者收到消息

    我实现了多个消费者 他们从单个队列中获取消息 我使用类似于这个例子 除了我正在无限循环中执行 basic get 进行轮询 知道如何防止所有消费者之间的竞争 因为只有一个消费者会收到消息 而另一个消费者将继续进行轮询 直到另一条消息到来为止
  • 在 R 中,如何用另一个字符串替换包含特定模式的字符串?

    我正在开展一个涉及清理大学专业数据列表的项目 我发现很多拼写错误 所以我想使用这个函数gsub 将拼写错误的拼写替换为正确的拼写 例如 假设 biolgy 在名为 Major 的专业列表中拼写错误 如何让 R 检测拼写错误并将其替换为正确的
  • 更新查询中具有多个匹配项的行

    给出如下更新语句 UPDATE UserAssesment SET AssessmentDate comp AssessmentDate FROM UserAssesment ua INNER JOIN vw CompletedAssess