Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chỉ chọn bản ghi nếu bản ghi trước nó có giá trị thấp hơn

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

ĐẦU RA

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

GIẢI THÍCH SƠ LƯỢC

Điều mà truy vấn ở trên thực hiện là nó tạo ra một số tuần tự bắt chước ROW_NUMBER() trên RDBS khác cho mọi SerialNumber đặt hàng theo ID theo thứ tự tăng dần.

Hai truy vấn con sau đó được nối với nhau qua SerialNumber và số thứ tự được tạo. Trên số đã tạo, giá trị trên truy vấn con đầu tiên phải bằng cộng với một trong các giá trị trên truy vấn con thứ hai để nhận được số mực trong lần đặt hàng tiếp theo.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Sum () nhiều cột

  2. Làm thế nào để nhận được phạm vi số nguyên ngẫu nhiên mysql?

  3. Trả về đầu ra của Python CGI MySQL Script

  4. Cách khắc phục Mã trạng thái máy chủ:302 Tìm thấy bởi SQL Inject Me Firefox Addon

  5. MySQL ON UPDATE CURRENT_TIMESTAMP không cập nhật