मेरे पास एक मास्टर/विवरण तालिका है और विस्तार तालिका के विरुद्ध मास्टर तालिका में कुछ सारांश मान अपडेट करना चाहते हैं। मैं जानता हूँ कि मैं उन्हें इस तरह अद्यतन कर सकते हैं:एक ही कथन में एकाधिक मान अपडेट करें
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)
लेकिन, मुझे कुछ इस तरह एक भी बयान में यह करने के लिए, चाहते हैं:
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
लेकिन वह काम नहीं करता। मैंने उन संस्करणों को भी आजमाया है जो "समूह द्वारा" खंड को छोड़ देते हैं। मुझे यकीन नहीं है कि मैं अपने विशेष डेटाबेस (लाभ), या मेरे एसक्यूएल की सीमाओं के खिलाफ बंपिंग कर रहा हूं। शायद उत्तरार्द्ध। क्या कोई मदद कर सकता है?
@ क्रिस, जो मेरे लिए भी काम नहीं करता है। यदि यह आपके लिए काम करता है, तो शायद मैं अपने विशेष डेटाबेस की सीमा में कूद रहा हूं। – Kluge
मैंने अब अपने मूल प्रश्न को स्पष्ट करने के लिए स्पष्ट किया है कि मैंने "समूह द्वारा" खंड को छोड़ने का प्रयास किया है। धन्यवाद! – Kluge
आप किस डेटाबेस सर्वर/संस्करण का उपयोग कर रहे हैं? जब आप मेरा एसक्यूएल कहते हैं, तो क्या आपका मतलब है "मेरे एसक्यूएल कौशल" या "mySQL, सर्वर"? – Chris