Sql-Server
在合併更新語句中使用聚合
我正在嘗試
COUNT()
在更新語句中執行語句。但是我的語法出現了這個錯誤Msg 157, Level 15, State 1, Line 6<br> An aggregate may not appear in the set list of an UPDATE statement.
我需要更改我的語法以使該語句成功執行嗎?
MERGE masterdata md USING receivedData rd ON md.empName = rd.empName WHEN MATCHED THEN UPDATE SET md.numberOfSales = COUNT(rd.SaleID);
我現在無法對此進行測試,但是在 USING 子句中進行聚合應該可以:
MERGE INTO masterdata md USING ( SELECT empName, COUNT(SaleID) as CNT FROM receivedData GROUP BY empName ) rd ON md.empName = rd.empName WHEN MATCHED THEN UPDATE SET md.numberOfSales = rd.CNT;
關係模型的一個強大方面是它在 select、join、union 等下是封閉的。封閉的意思是查詢的結果是一個關係(或 SQL 中的表)。因此,很容易形成可以用來代替表格的新派生關係。