sql >> Database teknologi >  >> RDS >> Mysql

MySQL-hjælp:Sådan finder du alle ordrer fra en kunde indtil pris <=20 og status='ubetalt'

Næsten PRÆCIS samme spørgsmål besvares her . Forudsætningen er, at du skal bruge en anden kolonne for at fungere som en løbende total for den pågældende kunde...

Jeg oprettede tabel og simulerede data nøjagtigt som dine resultater og kom frem til DINE nøjagtige resultater... Problemet var på en eller anden måde, at MySQL anvendte kriterierne TO GANGE pr. række og forstod ikke hvordan eller hvorfor... Jeg har stærk mistanke om, at det var en fejl, men kan ikke beskrive det. Under alle omstændigheder har jeg en rettelse, der fremtvinger en indre "PreQuery" som grundlag, og returnerer ALLE poster fra det med @SQLVars og derefter anvender en WHERE-sætning fra det...

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. Hibernate 5:- org.hibernate.MappingException:Ukendt enhed

  2. Arbejde med Salesforce.com-data i SQL Server Reporting Services

  3. Kolonneantal for mysql.user er forkert. Forventet 42, fundet 44. Tabellen er sandsynligvis beskadiget

  4. Ulovlig blanding af sorteringsfejl i MySql