Tengo una tabla maestra/de detalles y quiero actualizar algunos valores de resumen en la tabla maestra con la tabla de detalles. Sé que puedo actualizarlos como esto:Actualizar valores múltiples en una sola instrucción
update MasterTbl set TotalX = (select sum(X) from DetailTbl where DetailTbl.MasterID = MasterTbl.ID)
update MasterTbl set TotalY = (select sum(Y) from DetailTbl where DetailTbl.MasterID = MasterTbl.ID)
update MasterTbl set TotalZ = (select sum(Z) from DetailTbl where DetailTbl.MasterID = MasterTbl.ID)
Pero, me gustaría hacerlo en una sola instrucción, algo como esto:
update MasterTbl set TotalX = sum(DetailTbl.X), TotalY = sum(DetailTbl.Y), TotalZ = sum(DetailTbl.Z)
from DetailTbl
where DetailTbl.MasterID = MasterTbl.ID group by MasterID
pero que no funciona. También probé versiones que omiten la cláusula "agrupar por". No estoy seguro de si estoy tropezando con los límites de mi base de datos particular (Ventaja), o los límites de mi SQL. Probablemente el último. ¿Alguien puede ayudar?
@Chris, eso tampoco me funciona. Si funciona para usted, entonces probablemente me encuentre con una limitación de mi base de datos en particular. – Kluge
He aclarado mi pregunta original para mostrar que he intentado omitir la cláusula "agruparme". ¡Gracias! – Kluge
¿Qué servidor/versión de base de datos está usando? Cuando dices mi SQL, ¿te refieres a "mis habilidades SQL" o "mySQL, el servidor"? – Chris