質問: sql 集計結果の抽出方法を教えてください 金額テーブル(会社名、金額)と詳細テーブル(会社名、日付、金額)があり 金額テーブル a社 100円 詳細テーブル a社 2011/1/1 10円 a社 2011/1/2 10円 a社 2011/1/3 50円 a社 2011/1/4 20円 a社 2011/1/5 10円 a社 2011/1/6 10円 詳細テーブルの金額を一件づつ合計していき、金額テーブルの金額を超えた時の 詳細テーブルの日付を抽出するsqlを教えてください。 上記データの2011/1/5を抽出したいのです。 宜しくお願いします。
回答: 訂正です。 #1 のsqlでは、複数の会社が在る場合にうまくいきませんね。 会社ごとにグループ化してやる必要が有りました。 select d1.company, min(date) from detail d1 inner join money m on(d1.company = m.company) where (select sum(amount) from detail d2 where d1.company = d2.company and d2.date <= d1.date) >= m.amount group by d1.company; ----------------------------------------------------