sql >> Database >  >> RDS >> Mysql

Query om alle records te krijgen totdat de som van de kolom kleiner is dan of gelijk is aan een waarde

Je kunt doen

SELECT slno, item, price
  FROM
(
  SELECT slno, item, price, @t := @t + price total
    FROM table1 CROSS JOIN (SELECT @t := 0) i
   ORDER BY slno
) q
 WHERE total <= 10000

of

SELECT slno, item, price
  FROM
(
  SELECT slno, item, price, 
  (
    SELECT SUM(price)
      FROM table1
     WHERE slno <= t.slno
  ) total
    FROM table1 t
) q
 WHERE total <= 10000
 ORDER BY slno

Hier is SQLFiddle demo




  1. Prehistorische en moderne benadering van het ontwerpen van databases

  2. Retourneer alleen de numerieke waarden uit een PostgreSQL-databasekolom

  3. Werk het MYSQL-veld alleen bij als het veld null of 0 . bevat

  4. SQL JOIN twee tabellen met AVG