sql >> データベース >  >> RDS >> Mysql

列の合計が値以下になるまですべてのレコードを取得するようにクエリします

    できる

    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
    

    または

    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
    

    これがSQLFiddle です。 デモ




    1. 日時を日付と時刻の値に分割する

    2. ページをリロードせずにMYSQLテーブルから値を更新しますか?

    3. PHPMySQL複数の列による順序

    4. Oracleにスクリプトを介して挿入するより速い方法は?