2009-08-06 15 views
12

मैं emptype_id और calendar_id actual_head साथ बजट तालिका है, estimated_headरेल समूह

जब मैं कर Budgets.sum(:actual_head ,:group=>"emptype_id,calendar_id") मुझे क्या परिणाम उपरोक्त दो स्तंभों के आधार पर है, लेकिन केवल emptype_id

लेकिन जब आधार पर वर्गीकृत किया नहीं मिल मैं जाँच लोग इन एसक्यूएल क्वेरी सही

SELECT sum(`budgets`.actual_head) AS sum_actual_head, emptype_id,calendar_id AS emptype_id_calendar_id FROM `budgets` GROUP BY emptype_id,calendar_id 

103 पंक्तियों

मैं के माध्यम से पुनरावृति करना चाहा है प्रत्येक blankpe_id और calendar_id वास्तविक_हेड का योग प्राप्त करने के लिए और उस पर कुछ गणना करें।

उत्तर

3

मैं इस बारे में सुनिश्चित नहीं हूँ, :group => [:emptype_id, :calendar_id]

+0

हाय, जो काम नहीं करता है नीचे त्रुटि को फेंकता है; MySQL :: त्रुटि:: हम्म वहाँ दो कॉलम "ActiveRecord :: StatementInvalid द्वारा समूह के लिए कोई रास्ता नहीं है अज्ञात स्तंभ 'फ़ील्ड सूची' में 'emptype_idcalendar_id': चयन राशि (' बजट s'.actual_head) के रूप में sum_actual_head, emptype_idcalendar_id 'Targets' GROOP से' बजट 'समूह के रूप में blankpe_idca lendar_id " – philipth

+2

यह मेरे लिए रेल 3.0.x के साथ काम करता है:' मूल्यांकन। औसत (स्कोर: समूह => [: person_id,: category])'। –

+0

यह एक त्रुटि खुल जाएगा। यदि हम इस कोड को सक्रिय रिकॉर्ड चलाते हैं तो इन कॉलम नाम को एक शब्द जैसे blankpe_idcalendar_id –

10

रेल द्वारा समर्थित नहीं किया जा सकता है एकाधिक स्तंभों के साथ समूहन कोशिश खरीदते हैं। आपको नियमित रूप से सभी का उपयोग करना होगा:

budgets = Budgets.find(:all, 
         :select => "emptype_id, calendar_id, sum(budgets.actual_head) AS sum_actual_head", 
         :group => "emptype_id, calendar_id") 

budgets.each { |budget| puts budget.sum_actual_head } 
+1

रेल के अधिक हाल के संस्करणों के लिए 'बजट। चयन ("blankpe_id, calendar_id, sum (budgets.actual_head) AS sum_actual_head") का उपयोग करें। समूह ("blankpe_id, calendar_id") 'चूंकि केवल आईडी के साथ काम करता है। – amoebe

5

मैं धोखा देता हूं। :group => ["emptype_id,calendar_id"].

नहीं चाहता कि आप और न ही मैं चाहता हूं, लेकिन यह कम से कम काम करता है।

संबंधित मुद्दे