sql >> Base de Datos >  >> RDS >> Mysql

Ayuda de MySQL:cómo encontrar todos los pedidos de un cliente hasta el precio <=20 y estado ='no pagado'

Casi EXACTO 150-and-st/7965812#7965812">respuesta a la misma pregunta aquí . La premisa es que necesitaría otra columna para actuar como un total acumulado para el cliente en cuestión...

Creé una tabla y simulé datos exactamente como sus resultados y obtuve SUS resultados exactos... El problema era que MySQL estaba aplicando los criterios DOS VECES por fila y no entendía cómo o por qué... Sospecho FUERTEMENTE que es un error, pero no puedo describirlo. De todos modos, SÍ tengo una solución que fuerza una "PreConsulta" interna como base, y devuelve TODOS los registros de eso con @SQLVars y luego aplica una cláusula WHERE de eso...

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