Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bantuan MySQL:Bagaimana menemukan semua pesanan dari pelanggan sampai harga <=20 dan status='belum dibayar'

Hampir TEPAT pertanyaan yang sama dijawab di sini . Premisnya adalah Anda akan membutuhkan kolom lain untuk bertindak sebagai total berjalan untuk pelanggan yang bersangkutan...

Saya membuat tabel dan mensimulasikan data persis seperti hasil Anda dan menghasilkan hasil yang tepat ANDA ... Masalahnya adalah entah bagaimana MySQL menerapkan kriteria DUA KALI per baris dan tidak mengerti bagaimana atau mengapa ... Saya SANGAT curiga ini bug, tapi tidak bisa menggambarkannya. Bagaimanapun, saya memiliki perbaikan yang memaksa "PreQuery" dalam sebagai dasar, dan mengembalikan SEMUA catatan dari itu dengan @SQLVars dan kemudian menerapkan klausa WHERE dari itu...

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. SQL - kode kesalahan 1005 dengan nomor kesalahan 121

  2. Cara menggunakan bind_result() alih-alih get_result() di php

  3. tidak dapat terhubung ke buruh pelabuhan mysql dari lokal

  4. Pemicu MySQL dan SUM()

  5. Bagaimana stempel waktu unix disimpan dalam kolom int?