Skip to main content

#projectserver SQL to calculate running totals by month (work, actuals, Baseline)


When calculating running totals (for S-Curve/BurnUp reports) I have had to transform the periodic data returned from SQL into running totals in a pivot or used the running value SQL RS command to transform the data.

So, fast forward to happy SQL2012 land, and we have some useful script commands that can now be used.  Lets face it, our SQL boxes are usually packed to the brim with RAM and Cores these days so why not use them for what they're built for!

The following script calculates the running totals by month by project for all the normal useful measures. I am in no way saying this is an optimised script, it's just my first kick out at this.

In all honesty you'd probably want to remove the _userview references and go to the tables.  

Enjoy, ignore, laugh at the naivety to your hearts content

--SQL Script to return running totals (RTx) for Projects by Month
Select p.ProjectName
,data.month
,data.RTAssnWork
,sum(data.work)
,data.RTAssnActualWork
,sum(data.Actwork)
,data.RTAssnBAseWork
,sum(data.Basework)

from
(
select a.Projectuid,dateadd(month,datediff(month,0,a.timebyday),0) as month



,sum(a.assignmentwork) over (PArtition by a.projectuid ORDER BY dateadd(month,datediff(month,0,a.timebyday),0) ) as RTAssnWork

,a.AssignmentWork as work

,sum(a.AssignmentActualWork) over (PArtition by a.projectuid ORDER BY dateadd(month,datediff(month,0,a.timebyday),0) ) as RTAssnActualWork


,a.AssignmentActualWork as Actwork

,sum(a.AssignmentBaseline0Work) over (PArtition by a.projectuid ORDER BY               dateadd(month,datediff(month,0,a.timebyday),0) ) as RTAssnbaseWork
,a.AssignmentBaseline0Work as Basework

from MSP_EpmAssignmentByDay_UserView a 
Group by a.projectuid,dateadd(month,datediff(month,0,a.timebyday),0), AssignmentWork,AssignmentActualWork,assignmentbaseline0work
Data

left join msp_epmproject_Userview p on data.projectuid = p.ProjectUID

group by p.ProjectName,data.month,data.RTAssnWork,data.RTAssnActualWork,data.RTAssnbaseWork

order by p.ProjectName, data.month


Comments

Popular posts from this blog

Issues update on #projectserver2013 - Timesheets and Publishing

Reporting Publish ** updated with links to other related discussions, and a VBA macro ** the following issue has been noted on publish since June 13 CU was applied: ReportingProjectChangeMessageFailed (24006) - Object reference not set to an instance of an object.. Details: id='24006' name='ReportingProjectChangeMessageFailed' uid='4d869e56-f625-e311-bb41-005056b90052' QueueMessageBody='Project UID='e3f49977-b2bc-e211-8559-005056b90052'. PublishType='ProjectPublish'' Error='Object reference not set to an instance of an object.'. I have seen this noted previously on a similar issue: http://nearbaseline.com/blog/2013/06/ms-reporting-project-publish-jobs-failed-after-aprilcu/comment-page-1/#comment-14741 This is  caused by Baselined Milestones having NULL Baseline Cost values Original bug note with potential workaround is here: http://blogs.msdn.com/b/brismith/archive/2012/05/23/project-server-2007-reporting-project-pu...

#projectserver2013 VIEW FAILURE: The view failed to load. Press OK to reload this view with the default settings. Press cancel to select another view.

** UPDATE ** includes notes relating to secondary bug where Timesheet is created without Administrative tasks. Does this ring any bells? This has been bugging me for months, but finally I have a repro for this: Issue Summary:  When a task is deleted from a plan that is approved into a previous or current timesheet - even when there are no actuals on the task - you can no longer view the timesheet The following repro has been proven: - Setup system with Single Entry Mode, with enforced Status Approval before Timesheet Approval - Create resource as own timesheet manager - Create new project - Create two tasks in the same week, starting monday with 5 days duration:  1) Task to assign actuals, 2) Task to delete post submission - Assign Resource to tasks - publish project - as Timesheet User, go to the appropriate timesheet period for the tasks created - Assign actual work to one task (task 1), leaving task 2 with no actual work - Submit timesheet - as Project ...

Restoring PWA Site to another Web App in the same Farm

The scenario is this: SharePoint 2016 Farm with Project Server Two Web Apps Development UAT One PWA on Development Web App. I want to copy the PWA Site on Development web app to UAT to support a testing cycle. As far as I knew there were two options: 1) Content Database Restore and Attach Process would be backup your Dev Content Database, Restore to a new Content Database for QA, then mount the database on the appropriate web app and your off.... Problem:  Although you can do this with the -AssignNewDatabaseID switch in Powershell (to avoid two content db's having the same database id) the Site Collection (PWA) in the db still retains its SiteID which means there is a duplicate SiteID in the Configuration Database.  This stops the PWA site being created and alllocated correctly and becomes essentially orphaned. This method is only any good for MOVING not COPYING Back to the drawing board... 2) Backup-SPSite / Restore-SPSite I didn't believe this ...