sql - 选择最新条目的Id,值为***

标签 sql sql-server stored-procedures

我需要获取包含值的条目的 ID。

这是我用过的:

SET @ValuationId = (SELECT ValuationId FROM dbo.Valuation WHERE ValuationPropertyId = @ValuationPropertyId)

上面的问题是它选择了多个值,我可以用什么来让它选择最新的值?

这是我收到的错误消息:

Msg 512, Level 16, State 1, Procedure GetLatestValuationOfPropIdThenCallUpdateComparibleSalesInfo, Line 15 Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

最佳答案

使用MAX()

SET @ValuationId = (SELECT MAX(ValuationId) 
                    FROM   dbo.Valuation
                    WHERE  ValuationPropertyId = @ValuationPropertyId)

SET @ValuationId = (SELECT TOP 1 ValuationId
                    FROM   dbo.Valuation
                    WHERE  ValuationPropertyId = @ValuationPropertyId
                    ORDER  BY ValuationId DESC)

关于sql - 选择最新条目的Id,值为***,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14953415/

相关文章:

sql - 从过程DB2中的内部SQL调用获取SQLCODE和SQLSTATE

sql - 对象 'server' 数据库 'master' 上的不安全程序集权限被拒绝

mysql - 根据其他表的连接获取列的计数

sql - 如何用postgresql转换表

sql - 什么时候数据库触发器不好?

sql - Azure 数据仓库中的表变量

mysql - 如何使用mysql中的程序导出表数据

sql - 在 SSIS OLE DB 源组件中使用参数执行存储过程

mysql - SQL 对一列中不同值的日期计数

sql-server - sql脚本变量默认值