Tôi có bảng chính/chi tiết và muốn cập nhật một số giá trị tóm tắt trong bảng chính so với bảng chi tiết. Tôi biết tôi có thể cập nhật chúng như thế này:Cập nhật nhiều giá trị trong một câu lệnh
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)
Nhưng, tôi muốn làm điều đó trong một tuyên bố duy nhất, một cái gì đó như thế này:
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
nhưng điều đó không làm việc. Tôi cũng đã thử các phiên bản bỏ qua mệnh đề "nhóm theo". Tôi không chắc liệu tôi có gặp phải các giới hạn của cơ sở dữ liệu cụ thể (Advantage) hay các giới hạn của SQL của tôi hay không. Có lẽ sau này. Có ai giúp được không?
@Chris, cũng không có tác dụng đối với tôi. Nếu nó phù hợp với bạn, thì có lẽ tôi sẽ gặp phải một hạn chế về cơ sở dữ liệu cụ thể của tôi. – Kluge
Bây giờ tôi đã làm rõ câu hỏi ban đầu của mình để cho thấy rằng tôi đã thử bỏ qua mệnh đề "nhóm theo". Cảm ơn! – Kluge
Bạn đang sử dụng máy chủ/phiên bản cơ sở dữ liệu nào? Khi bạn nói SQL của tôi, bạn có nghĩa là "kỹ năng SQL của tôi" hay "mySQL, máy chủ"? – Chris