update with sum

Me tuvo un tiempo entretenido esto de hacer update y tambien un SUM en la misma consulta. Ocurre que tengo una tabla que tiene los sgtes campos cobrados, idservicio,idoperadora,fecha . Lo que queria hacer es realizar la suma de este campo cobrados agrupados por idservicio y fecha. Para tener un total por dia de cuanto se cobro en los servicios. Debo decir que tengo 3 registros por dia de cada servicio, ya que tengo 3 operadoras.
La cuestion es que queria guardar en esta misma tabla ese dato con idoperadora=0 . Bien lo consegui haciendo esto

update reportemov set reportemov.cobrados =(select sum(cobrados) from reportemov b where convert(varchar,fecha,101)=convert(varchar,getdate()-1,101) and idoperadora<>0 and reportemov.idservicio=b.idservicio group by b.idservicio) where reportemov.idoperadora=0 and convert(varchar,reportemov.fecha,101)=convert(varchar,getdate()-1,101)
Otro Ejemplo

UPDATE MyTabla1 SET myCol1 = b.myCol1, myCol2 = c.myCol2
FROM MyTabla1 a JOIN MyTabla2 b ON a.colid = b.colid
JOIN MyTabla3 c ON a.colid = c.colid


Gracias a la ayuda de Don Google.
Saludos
Adalberto Montanía

Comentarios