2012-10-03 14 views
8

से मेल खाता है तो शीर्षक शब्द के लिए कठिन था लेकिन सवाल बहुत आसान है। मैंने यहां सब कुछ खोजा और मेरे विशिष्ट मुद्दे के लिए कुछ नहीं मिला, इसलिए यह यहां है। मैं usuing कर रहा हूँ की तरह इसएसक्यूएल योग फ़ील्ड जब कॉलम मान

| Value | Product Name| 
    | 300 | Bike  | 
    | 400 | Bike  | 
    | 300 | Car   | 
    | 300 | Car   | 

मैं मेज की जरूरत है मुझे मान जहां उत्पाद का नाम से मेल खाता है की राशि को दिखाने के लिए Microsoft SQL सर्वर प्रबंधन स्टूडियो 2010

तालिका वर्तमान में लग रहा है - इस

| TOTAL | ProductName | 
    | 700 | Bike  | 
    | 600 | Car   | 
की तरह

मैं एक साधारण

SELECT 
     SUM(Value) AS 'Total' 
     ,ProductName 
FROM TableX 

की कोशिश की है लेकिन इसके बाद के संस्करण काम नहीं करता। मैं कॉलम में सभी मूल्यों का योग प्राप्त करना समाप्त करता हूं। मैं उत्पाद नाम मिलान के आधार पर कैसे योग कर सकता हूं?

धन्यवाद! SELECT बयान में एक कॉलम के साथ

उत्तर

11
SELECT SUM(Value) AS 'Total', [Product Name] 
FROM TableX 
GROUP BY [Product Name] 

SQL Fiddle Example

+0

मुझे पता था कि यह कुछ आसान होना चाहिए! यह ठीक काम किया। धन्यवाद =) –

2

कभी भी आप एक समग्र समारोह का उपयोग करें, (SUM, MIN, MAX ...), आप GROUP BY उपयोग करना चाहिए। यह एक समूह कार्य है जो इंगित करता है कि किस कॉलम द्वारा समेकित समूह है। इसके अलावा, कुल मिलाकर कोई भी कॉलम आपके SELECT कथन में नहीं हो सकता है।

उदाहरण के लिए, निम्नलिखित सिंटैक्स अमान्य है क्योंकि आप को निर्दिष्ट कॉलम (col2) जिसमें नहीं कर रहे हैं अपने GROUP BY (भले ही MySQL इस के लिए अनुमति देता है):

SELECT col1, col2, SUM(col3) 
FROM table 
GROUP BY col1 

अपने प्रश्न का हल होगा:

SELECT ProductName, SUM(Value) AS 'Total' 
FROM TableX 
GROUP BY ProductName 
+0

* जब भी आप एक समग्र फ़ंक्शन का उपयोग करते हैं, (SUM, MIN, MAX ...) आपको ग्रुप BY का उपयोग करना होगा। * - यह गलत है, आप पूरे सेट पर, या प्रतिबंधित एक भाग पर एकत्र करना चाहेंगे एक 'कहां' खंड। देखें [एसक्यूएल फिडल उदाहरण] (http://sqlfiddle.com/#!3/a3366/3/0) – RedFilter

+0

@RedFilter को स्पष्ट रूप से यह कहना चाहिए था कि 'SELECT' सूची में गैर-समेकित कॉलम का उपयोग करते समय यह लागू होता है। मैंने इसे प्रतिबिंबित करने के लिए अपना उत्तर अपडेट कर दिया है। – Kermit

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