Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MYSQL में तिथियों के आधार पर रिकॉर्ड कैसे प्राप्त करें

ROW_NUMBER() का उपयोग करें Run_amt . के साथ पंक्ति प्राप्त करने के लिए विंडो फ़ंक्शन अधिकतम महीने और फिर सशर्त एकत्रीकरण के साथ:

SELECT t.ID, t.Name, t.Amount,
  MAX(CASE WHEN LAST_DAY(Date) = LAST_DAY(CURRENT_DATE) THEN cal_amt END) cal_amt,
  MAX(CASE WHEN t.rn = 1 THEN Run_amt END) Run_amt
FROM (
  SELECT *,
    ROW_NUMBER() OVER (PARTITION BY ID, Name, Amount ORDER BY Date DESC) rn
  FROM tablename
) t
GROUP BY t.ID, t.Name, t.Amount

या:

SELECT t.ID, t.Name, t.Amount,
       MAX(t.cal_amt) cal_amt,
       MAX(t.Run_amt) Run_amt
FROM (
  SELECT ID, Name, Amount,
    MAX(CASE WHEN LAST_DAY(Date) = LAST_DAY(CURRENT_DATE) THEN cal_amt END) 
      OVER (PARTITION BY ID, Name, Amount ORDER BY Date DESC) cal_amt,
    FIRST_VALUE(Run_amt) OVER (PARTITION BY ID, Name, Amount ORDER BY Date DESC) Run_amt
  FROM tablename
) t  
GROUP BY t.ID, t.Name, t.Amount

डेमो देखें .
परिणाम:

> ID | Name   | Amount | cal_amt | Run_amt
> -: | :----- | -----: | ------: | ------:
>  1 | Test   |  15000 |   12000 |   15000
>  2 | Test_1 |  18000 |   16000 |   25000



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. '127.0.0.1' (10061) (2003) पर MySQL सर्वर से कनेक्ट नहीं हो सकता

  2. मैसकल डेटाबेस के साथ सोलर सर्च, डेटा आयात करने के लिए कोई भी उपयोगिता

  3. PHP SQL Foreach Statement

  4. सर्च इंजन ल्यूसीन बनाम डेटाबेस सर्च

  5. MySQL ट्रिगर्स का उपयोग करना