Friday, 15 August 2014

sql - How to aggregate alias column in activerecord? -


मान लीजिए कि निम्न तालिका है:

  उत्पाद (आईडी: पूर्णांक, श्रेणी: स्ट्रिंग, लागत: फ्लोट)  

और आप इस क्वेरी को activerecord के साथ करना चाहते हैं:

  उत्पाद। चयन ("लागत + 1000 के रूप में incremented_cost")। समूह (: श्रेणी) .sum ('incremented_cost') ActiveRecord :: वक्तव्यअवैध: पीजी :: अपरिभाषित कॉलम: त्रुटि: स्तंभ "incremented_cost" मौजूद नहीं है  

उदाहरण काफी सरल है, हालांकि यह अच्छी तरह से समस्या का प्रतिनिधित्व करता है: मैं एक संशोधित फ़ील्ड के लिए एक उपनाम कैसे निर्दिष्ट कर सकता हूं और इसका उपयोग एक समग्र कार्य में कर सकता हूँ?

मेरा लक्ष्य एक Activerecord_Relation को वापस करना है, जहां किसी समूह पर संभावित रूप से उपनाम फ़ील्ड पर एग्रीग्रेन्स को गणना करना संभव है। समस्या यह है कि "समूह" सशर्त है और मैं डेटा पाइपलाइन रखना चाहूंगा।

चयन करें विधि काम नहीं करती क्योंकि यह किसी रिश्ते के फ़ील्ड नाम नहीं बदलती है यदि आप "एएस" का प्रयोग करते हैं तो उपनाम (लिंक देखें) तक पहुंचना संभव है। हालांकि यह कुल कार्यों में काम नहीं करता है देखें:

# इंजेक्ट का उपयोग करना यह मेरे लिए एक अच्छा समाधान नहीं है, मैं सरणियों से निपटना नहीं चाहता।

उदाहरण के लिए यह कोड देता है सही परिणाम है, लेकिन यह मेरे लिए एक अच्छा समाधान नहीं है:

  उत्पाद। चयन ("लागत + 1000 के रूप में incremented_cost")। इंजेक्शन (0) करें | एसीसी, रिकॉर्ड | एसीसी + रिकार्ड.incremented_cost एंड  


No comments:

Post a Comment