将带有连接存储过程的mysql更新转换为sql server
我有一个update语句需要转换成sql server,有人能给我一些指导吗 声明如下:将带有连接存储过程的mysql更新转换为sql server,mysql,sql-server,stored-procedures,Mysql,Sql Server,Stored Procedures,我有一个update语句需要转换成sql server,有人能给我一些指导吗 声明如下: UPDATE #Commission INNER JOIN (Select cl.UserId, SUM(cl.CommissionAmount) As CommTotal From CommissionLog As cl Where cl.CommissionPeriodId = @CommissionPeriodId Group
UPDATE #Commission
INNER JOIN (Select cl.UserId, SUM(cl.CommissionAmount) As CommTotal
From CommissionLog As cl
Where cl.CommissionPeriodId = @CommissionPeriodId
Group By cl.UserId) As cl
ON cl.UserId = c.Id
SET Commission = cl.CommTotal;
临时表的布局为:
CREATE TABLE #Commission(
Id int,
FirstName varchar(255),
LastName varchar(255),
JobTitle varchar(255),
Commission decimal(18,4) default 0,
Chargeback decimal(18,4) default 0
);
这应该起作用:
UPDATE c
SET Commission = cl.CommTotal
FROM #Commission AS c
INNER JOIN (Select cl.UserId, SUM(cl.CommissionAmount) As CommTotal
From CommissionLog As cl
Where cl.CommissionPeriodId = @CommissionPeriodId
Group By cl.UserId) As cl
ON cl.UserId = c.Id
请参阅SQL SERVER
中的了解使用联接更新
UPDATE c
SET c.Commission = cl.CommTotal
FROM #Commission c
INNER JOIN (Select cl.UserId, SUM(cl.CommissionAmount) As CommTotal
From CommissionLog As cl
Where cl.CommissionPeriodId = @CommissionPeriodId
Group By cl.UserId) As cl
ON cl.UserId = c.Id;