2011-03-08 12 views
6

उदाहरण के लिए मैं इस तरह एक मेज है:MySQL: MySQL परिणाम के अंतिम पंक्ति में कुल प्राप्त

product | quantity | something 
------------------------------- 
abc | 5  | 2 
xzy | 5  | 2 
asd | 10  | 2 

जब मैं सभी रिकॉर्ड की जरूरत है मैं इस तरह करते हैं और 3 परिणाम प्राप्त:

select * from tableName 

लेकिन मैं कुल मात्रा (50) और कुछ (6) के लिए चौथी पंक्ति प्राप्त करना चाहता हूं। क्या यह एसक्यूएल क्वेरी में संभव है या मुझे क्वेरी निष्पादन के बाद कुल प्राप्त करने के लिए अपना परिणाम लूप करना है? यदि संभव हो तो मैं इसे क्वेरी में करना चाहता हूं।

+0

मैं तुम्हें एक 'SUM()' बयान (साथ फिर से अपने अनुरोध को चलाने के लिए की जरूरत है देखें http://www.tizag.com/mysqlTutorial/mysqlsum.php) – Tsadiq

उत्तर

14
(SELECT product, 
     quantity, 
     something 
FROM tablename) 
UNION 
(SELECT "all"   AS product, 
     SUM(quantity) AS quantity, 
     SUM(something) AS something 
FROM tablename) 

यह काम कर रहा है क्वेरी। यह एक चौथी पंक्ति के रूप में अपने परिणाम के अंत में वांछित जोड़ देगा

1
 
$q="select sum(quantity), sum(something) from tableName"; 
1

यह इस को हल करने के लिए सबसे अच्छा तरीका नहीं है, लेकिन चाल करना चाहिए

select product, quantity, something from tableName 
union 
select 'sum', sum(quantity), sum(something) from tableName 
2

आप कर सकते थे

SELECT Product, Quantity, Something 
FROM TABLENAME 

UNION 

SELECT 'ALL', SUM(Quantity),SUM(Something) 
FROM TABLENAME 

हालांकि, यह आपकी तालिका में एक पंक्ति नहीं जोड़ता है। जो शायद वैसे भी एक अच्छा विचार नहीं है।

9

आप रोलअप उपयोग कर सकते हैं योग उत्पन्न करने के लिए है, लेकिन आप, एक समग्र कार्य करने के लिए इसे बदलने के लिए इस तरह है:

SELECT product, sum(quantity), sum(something) 
FROM tableName 
GROUP BY product WITH ROLLUP 
संबंधित मुद्दे