SQL更新加入最大值

时间:2018-06-11 03:17:43

标签: sql sql-server

这是我的工作无效

UPDATE
    TableA
SET
    A_Price = B_Price
FROM
    TableA
        INNER JOIN
        (
            SELECT B_Name, max(B_Price)
            FROM TableB
            GROUP BY B_Name
        )
        ON A_Name = B_Name
WHERE
    ISNULL(RTRIM(A_Price),'')=''

我想做的是

部分A_Price为null或为空, 所以我尝试将B_Price放入A_Price 我只能通过A_Name和B_Name连接两个表 但是在这里,B_Name有很多B_Price (1个名称,但许多不同的价格) 所以我想将B_Price的最高价格插入A_Price

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您的查询看起来不错,但您需要SET到最高价格:

UPDATE a
SET A_Price = b.max_price
FROM TableA a
INNER JOIN
(
    SELECT B_Name, MAX(B_Price) AS max_price
    FROM TableB
    GROUP BY B_Name
) b
    ON a.A_Name = b.B_Name
WHERE
    COALESCE(REPLACE(a.A_Price, ' ', ''), '') = '';