0

我有一个临时表,其中有一个名为 schedulesTotal 的字段。我想用基于选择的计数来更新它。但我不确定我的逻辑是否正确。

这是我的代码

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 ')'.

谢谢你的帮助 :)

4

2 回答 2

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 子句 - 中给 temptable[#tempMike] A以更新临时表。你也可以使用UPDATE [#tempMike]

于 2013-02-27T18:07:31.867 回答
0

您的 UPDATE 格式错误,请尝试使用以下结构进行修复:

update TABLE
SET COLUMN = ( select count(*) from ANOTHER_TABLE where COLUMN1 = TABLE.COLUMN1)
;

注意 COLUMN 只分配了一个值(在这种情况下 COUNT(*) 本身是一个 GROUP 函数,您不需要 group by )。

高温高压

于 2013-02-27T18:12:49.010 回答