次の表のいくつかの行を特定の値に集計するにはどうすればよいですか?SQLはテーブル内のいくつかの行を選択して特定の値まで集計する
Table
-----
id | qty1 | qty2 | qty3 | qty4
------------------------------
1 | 0.0 | 0.0 | 10 | 20
2 | 1.5 | 0.0 | 7.5 | 18
3 | 1.0 | 2.0 | 7.5 | 18
4 | 0.0 | 0.5 | 5 | 13
まで取得し、だから私は、このような各行のqty1 + qty2 + qty3 + qty4その前のテーブルから行を選択する必要が
...私が欲しいのトップ値が57である、のは、言ってみましょうその57の値を削除し、他の行を破棄します。今、私が望むのトップという= 57ので、10 + 20 + 1.5 + 7.5 + 18
id | qty1 | qty2 | qty3 | qty4
------------------------------
1 | 0.0 | 0.0 | 10 | 20
2 | 1.5 | 0.0 | 7.5 | 18
ので、私は、行3 & 4を捨てる...
:この例では、私は次のようになるだろう値が50で、その後、私が取得する必要がありますROW2からこれらの値は50にまとめるので
id | qty1 | qty2 | qty3 | qty4
------------------------------
1 | 0.0 | 0.0 | 10 | 20
2 | 1.5 | 0.0 | 7.5 | 11
、および7、qty4はそれだから (BTWの行は、この特定の方法で順序付けられ...取り残されますqtysの合計を計算したい順番...最初のrを集計するのは有効ではありませんow1、次に3、次に2、次に4 ...などがあります。それらは常に1,2,3,4 ...の順番で合計されるべきです)
私はこれを補完することを望みますか?私は、最後の結果では得られなかった他の2つの行を意味します。
最初のケース:
id | qty1 | qty2 | qty3 | qty4
------------------------------
3 | 1.0 | 2.0 | 7.5 | 18
4 | 0.0 | 0.5 | 5 | 13
第二の場合:
id | qty1 | qty2 | qty3 | qty4
------------------------------
2 | 0.0 | 0.0 | 0.0 | 7
3 | 1.0 | 2.0 | 7.5 | 18
4 | 0.0 | 0.5 | 5 | 13
(第2のケースはどのように入手する方法について、あまりにも複雑である場合:
id | qty1 | qty2 | qty3 | qty4
------------------------------
1 | 0.0 | 0.0 | 10 | 20
元qtysを加算するため、 2行目の値が50の値を超えると、私はそれを破棄します... この場合の補数カッコ内
id | qty1 | qty2 | qty3 | qty4
------------------------------
2 | 1.5 | 0.0 | 7.5 | 18
3 | 1.0 | 2.0 | 7.5 | 18
4 | 0.0 | 0.5 | 5 | 13
)
私は複雑なクエリの多くを書いた、と私は挑戦して好きですが、これはちょうどあなたが手続き型のコードを記述するために頼むそれらのまれなケースの一つでありますあなたの選択した言語で –
簡略化された第2の場合でも?ポストの終わりにカッコ内の最後のもの...? –
簡略化された第2のケースはクエリとして実行可能です。ちょうどそれを求めるためにあなたの質問を変更した場合(またはそれを求める新しい質問を作成する場合)、私は助けることができます。 –