我有一个临时表,我有一个名为schedulesTotal的字段。我想用基于select的计数更新它。但我不确定我的逻辑是否正确。
这是我的代码
UPDATE [#tempMike]
SET schedulesTotal = total
(
SELECT ta.accountid,
COUNT(New_NextCallDueDate) as total FROM [#tempMike] AS ta
INNER JOIN PhoneCall AS p WITH (nolock) ON ta.accountid = p.regardingobjectid
group by ta.accountid
)
如果我单独运行选择部分,我会正确获得1个帐户数和总值我现在只想用选择语句返回的总值更新临时表
这是我目前得到的错误
Msg 156, Level 15, State 1, Line 4
Incorrect syntax near the keyword 'SELECT'.
Msg 102, Level 15, State 1, Line 8
Incorrect syntax near ')'.
感谢您的帮助:)
答案 0 :(得分:0)
试试这个
UPDATE A
SET schedulesTotal = total
FROM [#tempMike] A
INNER JOIN (
SELECT ta.accountid,
COUNT(New_NextCallDueDate) as total FROM [#tempMike] AS ta
INNER JOIN PhoneCall AS p WITH (nolock)
ON ta.accountid = p.regardingobjectid
group by ta.accountid
) B ON A.accountid = B.accountid
编辑:
UPDATE A
正在使用别名'A'
,我们在from子句 - [#tempMike] A
中赋予temptable来更新临时表。您也可以使用UPDATE [#tempMike]
答案 1 :(得分:0)
您的UPDATE格式错误,请尝试使用此结构进行修复:
update TABLE
SET COLUMN = ( select count(*) from ANOTHER_TABLE where COLUMN1 = TABLE.COLUMN1)
;
注意COLUMN只分配了一个值(在这种情况下,COUNT(*)本身就是一个GROUP函数,你不需要分组)。
HTH