Ryan Gadsdon
Ryan Gadsdon

Reputation: 2378

Month to date sum SQL

I am trying to create a daily figure and month to date total in SQL server.

    DATE                             Name         Figure             MTD
    2017-09-01 00:00:00.000          Luke          10              0.000000
    2017-09-02 00:00:00.000          Luke          10              0.000000
    2017-09-03 00:00:00.000          Luke          10              0.000000
    2017-09-04 00:00:00.000          Luke          10              0.000000

Basically i want the mtd to show 40 even if i limit to just one day like below.

    DATE                     Name               Figure              MTD
    2017-09-01 00:00:00.000 Luke                  10                40

How can i achieve this?

Upvotes: 0

Views: 1899

Answers (2)

Venkataraman R
Venkataraman R

Reputation: 12959

Sample code in MS Sql Server is given below:

 CREATE TABLE #Order(ORDERDATE datetime,SalespersonName VARCHAR(30),  DailyFigure int)

INSERT INTO #Order VALUES
    ('2017-09-01 00:00:00.000','Luke',10),              
    ('2017-09-02 00:00:00.000','Luke',10),              
    ('2017-09-03 00:00:00.000','Luke',10),              
    ('2017-09-04 00:00:00.000','Luke',10);   

    SELECT * FROM #Order 

    SELECT * FROM 
    (SELECT ORDERDATE, SalespersonName,DailyFigure, SUM(DailyFigure) OVER(PARTITION BY SalesPersonName, MONTH(OrderDate)) AS MTD
    FROM #Order) as r
    WHERE ORDERDATE = '2017-09-01 00:00:00.000'

Upvotes: 4

Ferdinand Gaspar
Ferdinand Gaspar

Reputation: 2063

 SELECT MIN(ORDERDATE), 
        SalespersonName,
        AVG(DailyFigure) DailyFigure,
        SUM(DailyFigure) MTD
   FROM Order

Upvotes: 0

Related Questions