2012-11-15 16 views
5

मेरे पास दो एक्सेस टेबल हैं। एक तालिका (तालिका 1) में एक अनूठा फ़ील्ड है, माईआईडी और दूसरी तालिका (तालिका 2) में माईआईडी और अन्य कॉलम, डेटा के साथ कई पंक्तियां हैं। मैं एक SQL कथन लिखना चाहता हूं जो एक foreach के समान है जहां MyID के लिए सभी मान चयनित हैं और तालिका 2 के डेटा से औसत हैं और फिर किसी अन्य फ़ील्ड के तहत MyID पंक्ति में अपडेट किया गया है, औसत। जैसेतालिका पंक्तियों का उपयोग कर एसक्यूएल फोरच

**Table1** 
MyID 
ID1 
ID2 
ID3 

**Table2** 
MyID Data Mon 
ID2 10  Jan 
ID2 20  Feb 
ID1 10  Jan 
ID3 30  Mar 
ID1 30  Mar 

परिणामों की अपेक्षा:

**Table1** 
MyID Avg 
ID1  20 
ID2  15 
ID3  30 

हो सकता है कि वहाँ एसक्यूएल में यह करने के लिए एक बेहतर तरीका है, लेकिन वर्तमान में पता नहीं है।

उत्तर

5
UPDATE table1 
     INNER JOIN 
     (
      SELECT Data1, AVG(columnName) avgCol 
      FROM table2 
      GROUP BY Data1 
     ) b ON table1.MyID = b.Data 
SET  table1.avgColumnName = b.avgCol 
+0

मुझे त्रुटि संदेश मिलता है: एमएस ऑफिस एक्सेस डीबी इंजन ऑब्जेक्ट 'एवीजी (डेटा) avgCol' नहीं ढूंढ सकता है। –

0

यह एक प्रश्न के रूप में एमएस एक्सेस में काम कर देता है, लेकिन एक तालिका में अपडेट नहीं हो।

SELECT Table2.[MyID], Avg(Table2.[Data]) AS [AVG] 
FROM Table2 
GROUP BY Table2.[MyID] 
संबंधित मुद्दे