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

Trợ giúp về MySQL:Cách tìm tất cả các đơn đặt hàng từ khách hàng cho đến khi giá <=20 và trạng thái ='chưa thanh toán'

Gần chính xác câu hỏi tương tự được trả lời tại đây . Tiền đề là bạn sẽ cần một cột khác để hoạt động như một tổng số đang chạy cho khách hàng được đề cập ...

Tôi đã tạo bảng và dữ liệu mô phỏng chính xác như kết quả của bạn và đưa ra kết quả chính xác của BẠN ... Vấn đề là bằng cách nào đó MySQL đang áp dụng tiêu chí TWICE cho mỗi hàng và không hiểu bằng cách nào hoặc tại sao ... Tôi MẠNH nghi ngờ nó là lỗi, nhưng không thể mô tả nó. Nhưng dù sao, tôi CÓ một bản sửa lỗi buộc một "PreQuery" bên trong làm cơ sở và trả lại TẤT CẢ các bản ghi từ đó bằng @SQLVars và sau đó áp dụng mệnh đề WHERE từ đó ...

select properSummed.*
   from 
      ( select
              o.orderid, 
              o.price, 
              @RunningTotal := @RunningTotal + o.price as UnpaidSoFar
           from
              orders o, 
              (select @RunningTotal := 0 ) sqlvars
           where o.ownerid = 1
             and o.paymentstatus = 'unpaid' ) properSummed
    where 
       properSummed.UnpaidSoFar <= 50


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để sử dụng câu lệnh IF trong truy vấn tham gia MySQL?

  2. MySQL kiểm tra xem một bảng có tồn tại hay không mà không đưa ra một ngoại lệ

  3. Cách thực thi thủ tục đã lưu trữ trong MySQL Workbench

  4. Có cách nào để tự động tạo trình kích hoạt khi tạo bảng mới trong MySQL không?

  5. Làm thế nào để sử dụng câu lệnh LOAD DATA INFILE khi tệp nằm ở vị trí khác?