2017-07-17 47 views
0

私は 'Share 02015'の値を持つ特定のデータを持っています。私はデータを分割し、数値の部分を最大値でインクリメントしました。クエリを更新しようとすると、次のエラーがスローされます。"集計は、UPDATEステートメントのセットリストに表示されないことがあります。"

集計がUPDATEステートメントのセットリストに表示されないことがあります。

私が使用しているクエリがエラーメッセージで述べたように

UPDATE dbo.Ledgers 
SET LedgerName = 'Share 00' +(CAST(MAX(CAST(SUBSTRING(LedgerName, CHARINDEX(' ', LedgerName) + 1, 6) AS int)+1)AS nvarchar)) 
WHERE LedgerName = 'Share 00877'; 

答えて

0

は、あなたが

を更新する CTEを使用してみてください MAXまたは更新 SET、リスト内の他の集計関数を使用することはできませんです
WITH cte 
    AS (SELECT new_LedgerName = 'Share 00' + (Cast(Max(Cast(Substring(LedgerName, Charindex(' ', LedgerName) + 1, 6) AS INT) 
                 + 1)AS NVARCHAR)), 
       LedgerName 
     FROM dbo.Ledgers 
     WHERE LedgerName = 'Share 00877' 
     GROUP BY LedgerName) 
UPDATE cte 
SET LedgerName = new_LedgerName 
関連する問題