use*_*281 3 sql t-sql sql-server-2008
我正在尝试将列更新为最大值,但仅在按适当的标识符分组时.
SQL小提琴我试图用试用和失败的代码:(.
SQL Fiddle我希望它在更新后看起来像什么.
您可以借给我的任何帮助将不胜感激.据我所知,max()只占用列的最大数量,那么如何在不破坏它的情况下对更新语句进行排序?
当您始终可以在运行时计算时,为什么要将这些冗余数据存储在单独的列中?您知道,无论何时更新表中的任何一行,您都必须使用触发器或其他机制保持最新状态,对吗?
UPDATE h
SET LAST_REVISION = s.lr
FROM dbo.PO_HEADER AS h
INNER JOIN
(
SELECT PO_NUMBER, lr = MAX(REVISION_NUMBER)
FROM dbo.PO_HEADER
GROUP BY PO_NUMBER
) AS s
ON h.PO_NUMBER = s.PO_NUMBER;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5421 次 |
最近记录: |