3

SQL サーバー選択クエリに問題があります。次の表があります。

ID-----Name----Quantity
1-------a-----------10
2-------b-----------30
3-------c-----------20
4-------d-----------15
5-------e-----------10
6-------f-----------30
7-------g-----------40

Quantity < value の合計であるレコードを選択したいと思います。たとえば、数量の合計が 65 未満のレコードを選択すると、出力は次のようになります。

ID-----Name----Quantity
1-------a-----------10
2-------b-----------30
3-------c-----------20

次のレコードを含めると、Quantity の合計は 75 になるためです。

このクエリを作成したいと思います。私を助けてください。

4

2 に答える 2

5

相関サブクエリを使用するだけで、MySQL と SQL Server の両方で問題なく動作します。しかし、それは最高のパフォーマンスの賢明な解決策ではありません:

SELECT 
  ID, 
  Name,
  Quantity
FROM
(
  SELECT 
    t1.ID, 
    t1.Name,
    t1.Quantity,
    (SELECT SUM(t2.Quantity)
     FROM tablename AS t2
     WHERE t2.ID <= t1.ID) AS Total
  FROM Tablename AS t1
) AS t
WHERE Total < 65;

実際に見てみましょう:

これにより、次のことが得られます。

| ID | NAME | QUANTITY |
------------------------
|  1 |    a |       10 |
|  2 |    b |       30 |
|  3 |    c |       20 |
于 2013-04-11T06:51:41.857 に答える