2012-12-18 13 views
13

SQL सर्वर 2012 में, मेरे पास एक तालिका my_table है जिसमें स्तंभ state, month, ID, और sales हैं।एकाधिक पंक्तियों से एक पंक्ति में

मेरा लक्ष्य अलग पंक्तियों को मर्ज करना है जो state, month, ID एक पंक्ति में हैं, जबकि इन चयनित पंक्तियों के sales कॉलम को मर्ज किए गए पंक्ति में मिलाएं।

उदाहरण के लिए:

state month ID sales 
------------------------------- 
FL  June  0001 12,000 
FL  June  0001 6,000 
FL  June  0001 3,000 
FL  July  0001 6,000 
FL  July  0001 4,000 
TX  January 0050 1,000 
MI  April 0032 5,000 
MI  April 0032 8,000 
CA  April 0032 2,000 

यह है कि मैं क्या

state month ID sales 
------------------------------- 
FL  June  0001 21,000 
FL  July  0001 10,000 
TX  January 0050 1,000 
MI  April 0032 13,000 
CA  April 0032 2,000 

प्राप्त करना चाहिए मैं कुछ शोध किया, और मैंने पाया शामिल होने कि स्वयं मैं क्या हूँ के लिए इसी तरह कुछ करने के लिए माना जाता है प्राप्त करना चाहिए।

+4

'दस्तावेज] (http://msdn.microsoft.com/en-us/library/ms187810.aspx) 'SUM()' के लिए कुछ स्पष्ट उदाहरण हैं – Pondlife

उत्तर

16

जब तक मैं जरूरतों के मामले में कुछ याद आ रही है, क्यों सिर्फ एक समग्र समारोह के साथ उपयोग नहीं एक GROUP BY:

select state, month, id, sum(sales) Total 
from yourtable 
group by state, month, id 
order by id 

देखें SQL Fiddle with Demo

परिणाम है:

| STATE | MONTH | ID | TOTAL | 
-------------------------------- 
| FL | July | 1 | 10000 | 
| FL | June | 1 | 21000 | 
| CA | April | 32 | 2000 | 
| MI | April | 32 | 13000 | 
| TX | January | 50 | 1000 | 
3

वहाँ ध्यान में रखते हुए कॉलम id पर एक अनुक्रमणिका होना चाहिए, यह क्वेरी एक बेहतर समाधान होगा:

select state, month, id, sum(sales) Total 
from yourtable 
group by id, state, month 
order by id 
संबंधित मुद्दे

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