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 に指定したalias を使用して[#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 には 1 つの値のみが割り当てられます (この場合、COUNT(*) 自体は GROUP 関数であり、グループ化する必要はありません)。

HTH

于 2013-02-27T18:12:49.010 に答える