0

節によるパーティション分割を使用して、人々の毎月の数字を計算しています。

私の結果の短い例:

    Date           Person       Team    Daily Figure    Month To Date
    24/09/17       James         2           50            200
    24/09/17       James         2           50            200
    25/09/17       James         2           50            200
    25/09/17       James         2           50            200

私は毎日の数字を人と月に分けて月の数字を計算しています。

    CASE
    WHEN 
    MONTH([DATE]) = MONTH(getdate())
    THEN SUM(Figure)
    OVER (PARTITION BY [Name], 
    MONTH(DATE])) 
    ELSE 0
    END AS 'Month To Date'

私が抱えている主な問題は、今日の毎日の数字だけを表示したいが、月全体の値を表示したいということです。私は各人の数字をグループ化し、今日に制限しますが、人ごとにグループ化できるようにするには、今までの月の数字を合計する必要があります。

    Date           Person       Team    Daily Figure    Month To Date
    25/09/17       James         2           100            800

毎日の数字は正しいですが、重複した行を明らかに合計しているため、間違った数字が得られます。

今日の理想的な結果は次のとおりです。

     Date           Person       Team    Daily Figure    Month To Date
    25/09/17         James         2           100             200

重複行なし。

誰かがこれについて何かアドバイスを受けましたか? 基本的に重複したパーティション化された行を削除するため、グループ化された正しい月から現在までの数値を取得します

アップデート:

各行は、各人の個別の図です。何もグループ化されていないため、各人は毎日少なくとも 20 行の数値を表示できます。

4

1 に答える 1