如何在使用内连接时更新其他字段上的计数字段?

时间:2013-02-27 18:03:22

标签: sql sql-update

我有一个临时表,我有一个名为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 ')'.

感谢您的帮助:)

2 个答案:

答案 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