0

日付とポイントの2つの列を持つテーブルがあります。今日を含むすべての日のポイントの合計を返すクエリを作成したいと考えています。これは、今日までに獲得したポイントのチャートを生成するためのものです。

編集:ewsが編集する前に、私の質問はより明確だったと思います:)

そんなデータで

2012-01-01 1
2012-01-02 1
2012-01-02 2 同日(1日に多くの記録を残すことができます。その日の1試合の結果と考えることができます)
2012-01-03 -1

私は結果を見たい:

2012-01-01 1
2012-01-02 4 (1+1+2)
2012-01-03 3 (1+1+2-1)

私はSQL Server 2008を使用しています。LINQ to Entitiesでそれを行う方法を知っていれば、それは素晴らしいことです。

4

4 に答える 4

5

累積が必要な場合は、これを試してください:

編集:

SELECT 
Date,
(SELECT SUM(Point) FROM A WHERE Date <= MainTable.Date) AS Points
FROM A MainTable
GROUP BY Date

これをテストするためのSQL Fiddleを次に示します。

于 2012-09-10T21:03:45.367 に答える
2

一部の DBMS では、ウィンドウ関数を使用してこれを行うより良い方法がありますが、ほとんどの SQL データベースで機能するはずのクエリを次に示します。

SELECT t1.date,
       SUM(t2.points) AS points_to_date
  FROM table_name t1
  JOIN table_name t2
    ON t2.date <= t1.date
 ORDER
    BY t1.date
;
于 2012-09-10T21:05:03.930 に答える
0

質問から私が理解していることは、各日付がその日付よりも小さいすべての日付のポイントの合計を持つように、現在のポイントの合計が欲しいということです。もしそうなら、この記事の累計セクションを見てください。

于 2012-09-10T21:03:58.500 に答える
0

これを行う唯一の方法は、毎日新しいクエリを使用することです。

dateVariable = "2012-09-06"
SELECT Sum(points) From table_name WHERE Date<=dateVariable;

明らかに、これを行うには、毎回 dateVariable を変更して、すべての日を繰り返す必要があります。

于 2012-09-10T21:02:19.453 に答える