SQL Update语句不起作用 - SQL Server

问题描述 投票:-1回答:1

我试图运行下面的SQL语句(SQL Server),但得到错误

“UPDATE和DELETE语句中的FROM子句不能包含子查询源或连接。”

update fp 

set fp.totalcapacity = hc.totalcapacity, 
fp.sellablecapacity = hc.sellablecapacity

from [fact].[FinalPosition] fp

join fact.[HotelCapacity] hc
on fp.hotelkey = hc.hotelkey
and fp.staydate = hc.staydate

where fp.staydate = '2016-06-18'

我似乎无法理解为什么我会收到此错误。任何的想法?

sql sql-server sql-update
1个回答
3
投票

我认为你想要的语法是:

update fp 
    set totalcapacity = hc.totalcapacity, 
        sellablecapacity = hc.sellablecapacity
    from fp join
         fact.[HotelCapacity] hc
         on fp.hotelkey = hc.hotelkey and fp.staydate = hc.staydate
    where fp.staydate = '2016-06-18';

如果你想让fp引用一个实际的表,请在from子句中包含它,并使fp成为表的别名。

© www.soinside.com 2019 - 2024. All rights reserved.