Reputation: 2378
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
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
Reputation: 2063
SELECT MIN(ORDERDATE),
SalespersonName,
AVG(DailyFigure) DailyFigure,
SUM(DailyFigure) MTD
FROM Order
Upvotes: 0