Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pomoc MySQL:Jak znaleźć wszystkie zamówienia od klienta do ceny <=20 i statusu='nieopłacone'

Prawie DOKŁADNE odpowiedź na to samo pytanie . Założenie jest takie, że potrzebna jest kolejna kolumna, która będzie działać jako suma bieżąca dla danego klienta...

Stworzyłem tabelę i symulowane dane dokładnie tak, jak Twoje wyniki i uzyskałem TWOJE dokładne wyniki... Problem polegał na tym, że MySQL stosował kryteria DWUKROTNIE na wiersz i nie rozumiał, jak i dlaczego... MOCNO podejrzewam, że to błąd, ale nie potrafię tego opisać. W każdym razie, mam poprawkę, która wymusza wewnętrzne "PreQuery" jako podstawę i zwraca WSZYSTKIE rekordy z tego za pomocą @SQLVars, a następnie stosuje klauzulę WHERE z tego...

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. Jak połączyć się z bazą danych MySQL

  2. Kolejny serwer mysqld działający na porcie 3306 błąd

  3. Ulepszanie zapytania przy użyciu wielu wewnętrznych sprzężeń do wp_postmeta, tabeli klucz/wartość

  4. Jak utworzyć bazę danych MySQL w cPanel?

  5. Zmuś użytkowników do posiadania najnowszej wersji aplikacji na Androida