C# C和MySQL表被指定两次,都作为“更新”的目标

C# C和MySQL表被指定两次,都作为“更新”的目标,c#,mysql,C#,Mysql,这是我的SQL查询 UPDATE Nomina SET utilidadSemana = (SELECT SUM(totalIngresosXSemana - totalGastosXSemana) FROM Nomina WHERE fechaInicio >= @fechaInicial AND fechaFin <= @fechaFinal) WHERE fechaInicio >= @fech

这是我的SQL查询

UPDATE Nomina 
SET utilidadSemana = 
    (SELECT SUM(totalIngresosXSemana - totalGastosXSemana) 
        FROM Nomina 
        WHERE fechaInicio >= @fechaInicial 
        AND fechaFin <= @fechaFinal) 
WHERE 
    fechaInicio >= @fechaInicial 
    AND fechaFin <= @fechaFinal;

日期是常量,因此可以使用交叉联接:

UPDATE Nomina n CROSS JOIN
       (SELECT SUM(totalIngresosXSemana - totalGastosXSemana) as newval
        FROM Nomina 
        WHERE fechaInicio >= @fechaInicial AND
              fechaFin <= @fechaFinal
       ) nn
    SET n.utilidadSemana = nn.newval   
WHERE fechaInicio >= @fechaInicial AND
      fechaFin <= @fechaFinal;