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

रिकॉर्ड का चयन तभी करें जब उसके पहले वाले का मान कम हो

SELECT  a.ID, a.SerialNumber, 
        b.Remain_Toner_Black BeforeCount,
        a.Remain_Toner_Black AfterCount
FROM    
        (
            SELECT  A.ID, 
                    A.SerialNumber, 
                    A.Remain_Toner_Black,
                    (
                        SELECT  COUNT(*)
                        FROM    tableName c
                        WHERE   c.SerialNumber = a.SerialNumber AND
                                c.ID <= a.ID) AS RowNumber
            FROM    TableName a
        ) a
        INNER JOIN
        (
            SELECT  A.ID, 
                    A.SerialNumber, 
                    A.Remain_Toner_Black,
                    (
                        SELECT  COUNT(*)
                        FROM    tableName c
                        WHERE   c.SerialNumber = a.SerialNumber AND
                                c.ID <= a.ID) AS RowNumber
            FROM    TableName a
        ) b ON a.SerialNumber = b.SerialNumber AND
                a.RowNumber = b.RowNumber + 1
WHERE   b.Remain_Toner_Black < a.Remain_Toner_Black

आउटपुट

╔══════╦═════════════════╦═════════════╦════════════╗
║  ID  ║  SERIALNUMBER   ║ BEFORECOUNT ║ AFTERCOUNT ║
╠══════╬═════════════════╬═════════════╬════════════╣
║ 7331 ║ Z5UEBJAC900002Y ║          36 ║        100 ║
║ 7088 ║ 3960125290      ║           0 ║         93 ║
║ 7100 ║ 3960125290      ║          93 ║        100 ║
╚══════╩═════════════════╩═════════════╩════════════╝

संक्षिप्त व्याख्या

उपरोक्त क्वेरी क्या करती है कि यह एक अनुक्रमिक संख्या उत्पन्न करती है जो ROW_NUMBER() की नकल करती है अन्य RDBS पर प्रत्येक SerialNumber . के लिए ID . द्वारा आदेशित आरोही क्रम में।

फिर दो सबक्वेरी को SerialNumber . के माध्यम से जोड़ा जाता है और अनुक्रमिक संख्या उत्पन्न। जनरेट की गई संख्या पर, पहली सबक्वेरी का मान दूसरे सबक्वेरी के मान के प्लस वन के बराबर होना चाहिए ताकि अगले रीऑर्ड पर टोनर की संख्या प्राप्त हो सके।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पैरामीटर '@myLeft' को परिभाषित किया जाना चाहिए

  2. कुप्पी-SQLAlchemy - कई डेटाबेस के लिए फ्लाई कनेक्शन पर

  3. MySQL में पदानुक्रमित डेटा से गहराई आधारित पेड़ उत्पन्न करना (कोई सीटीई नहीं)

  4. पीडीओ वर्ग का विस्तार

  5. MySql REGEXP में तार्किक और ऑपरेटर?