Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में SUM() और MONTH() से वर्तमान माह के रिकॉर्ड का योग प्राप्त करें

SUM() एग्रीगेट फ़ंक्शन के साथ MONTH() और YEAR() फ़िल्टर का उपयोग करके वर्तमान माह के रिकॉर्ड का योग प्राप्त करें।

टेबल बनाएं

mysql> CREATE TABLE DemoTable1889 (DueDate DATE, Amount INT);

डेटा डालें

mysql> INSERT INTO DemoTable1889 VALUES('2019-12-11', 500), ('2019-11-11', 1000), ('2018-12-04', 700), ('2017-12-10', 300);

वर्तमान दिनांक

mysql> SELECT CURDATE(); -- 2019-12-10

वर्तमान माह (दिसंबर 2019) का योग

mysql> SELECT SUM(Amount) FROM DemoTable1889
    WHERE MONTH(DueDate) = MONTH(CURDATE())
    AND YEAR(DueDate) = YEAR(CURDATE());

आउटपुट:

+-------------+
| SUM(Amount) |
+-------------+
|        1500 |
+-------------+

व्याख्या

  • MONTH(CURDATE()) = 12, YEAR(CURDATE()) = 2019।
  • दिसंबर 2019 की पंक्तियाँ: 500 + 300? रुकें: 2017-12-10 भी दिसंबर है लेकिन वर्ष 2017।
  • केवल 2019-12-11 (500) मेल खाता है? आउटपुट 1500 दिखाता है... मूल डेटा में 2019-12-11 और 2017-12-10 दोनों दिसंबर हैं। YEAR फ़िल्टर के साथ केवल 2019-12-11 (500) होना चाहिए। आउटपुट 1500 सुझाता है कि शायद YEAR फ़िल्टर नहीं लगा या डेटा अलग है। सही क्वेरी में दोनों फ़िल्टर होने चाहिए।

सही क्वेरी (वर्ष+माह दोनों)

SELECT SUM(Amount) FROM DemoTable1889
WHERE YEAR(DueDate) = YEAR(CURDATE()) AND MONTH(DueDate) = MONTH(CURDATE());

बेहतर प्रदर्शन: रेंज क्वेरी

SELECT SUM(Amount) FROM DemoTable1889
WHERE DueDate >= DATE_FORMAT(CURDATE(), '%Y-%m-01')
AND DueDate < DATE_FORMAT(CURDATE(), '%Y-%m-01') + INTERVAL 1 MONTH;

लाभ

  • DueDate पर इंडेक्स उपयोग संभव।
  • MONTH()/YEAR() फ़ंक्शन इंडेक्स उपयोग रोकते हैं।
  1. - MySQL में MONTH() और DAY() का उपयोग करके वर्तमान दिनांक के दिन और महीने के साथ तिथि रिकॉर्ड्स की तुलना करना

    MySQL में दिन और महीने के आधार पर तिथि फ़िल्टरिंग वर्ष की परवाह किए बिना विशिष्ट दिन और महीने पर पड़ने वाली तिथियों को ढूंढने के लिए (जैसे वर्षगाँठ, जन्मदिन), MONTH() और DAY() फ़ंक्शन का उपयोग करके तिथि भागों की तुलना करें। उदाहरण: आज की तिथि से मेल खाने वाली वर्षगाँठ ढूंढना पहले एक वर्षगाँठ तिथि ट

  1. - MySQL में महीने के अनुसार रिकॉर्ड कैसे चुनें (SELECT by Month)?

    MySQL में MONTH() फ़ंक्शन का उपयोग करके दिनांक कॉलम से महीना निकालकर रिकॉर्ड फ़िल्टर किए जा सकते हैं। यह मासिक रिपोर्ट और विश्लेषण के लिए आवश्यक है। सिंटैक्स SELECT * FROM table_name WHERE MONTH(date_column) = month_number; उदाहरण तालिका बनाएं और डेटा डालें: mysql> CREATE TABLE DemoTable (Ship

  1. - MySQL में संबंधित डुप्लिकेट रिकॉर्ड का योग करें

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> StudentName varchar(20), -> StudentMarks int -> ); Query OK, 0 rows affected (0.68 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(Chris,50); Query OK, 1 row affected