इसके लिए CASE स्टेटमेंट का उपयोग करें। आइए पहले एक टेबल बनाते हैं:
mysql> create table DemoTable(
Id int,
Value int );
Query OK, 0 rows affected (0.51 sec)
इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:
mysql> insert into DemoTable values(10,100); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(10,-110); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(10,200); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(10,-678); Query OK, 1 row affected (0.17 sec)
सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> select * from DemoTable;
यह निम्नलिखित आउटपुट देगा:
+------+-------+ | Id | Value | +------+-------+ | 10 | 100 | | 10 | -110 | | 10 | 200 | | 10 | -678 | +------+-------+ 4 rows in set (0.00 sec)
सकारात्मक और नकारात्मक मानों का योग अलग-अलग कॉलम में प्रदर्शित करने की क्वेरी
mysql> select Id,
sum(case when Value>0 then Value else 0 end) as Positive_Value,
sum(case when Value<0 then Value else 0 end) as Negative_Value
from DemoTable
group by Id;
यह निम्नलिखित आउटपुट देगा:
+------+----------------+----------------+ | Id | Positive_Value | Negative_Value | +------+----------------+----------------+ | 10 | 300 | -788 | +------+----------------+----------------+ 1 row in set (0.00 sec)
व्याख्या
CASE WHEN Value > 0 THEN Value ELSE 0 END- केवल सकारात्मक मान जोड़ता है, नकारात्मक को 0 मानता हैCASE WHEN Value < 0 THEN Value ELSE 0 END- केवल नकारात्मक मान जोड़ता है (ऋणात्मक चिह्न सहित)GROUP BY Id- समान ID वाले रिकॉर्ड समूहित करता है
यह वित्तीय रिपोर्टिंग, खाता बही, आदि के लिए उपयोगी है।