I've got the following SQL code that that will calculate, in seconds, the amount of OnProd and OffProd time assigned to each person by day:
SELECT
UserID,
First_NM,
Last_NM,
MgrName,
CASE WHEN PendReason = 'On Prod' THEN DATEDIFF(s, DateStart, DateEnd) ELSE 0 END AS OnProd,
CASE WHEN PendReason = 'Off Prod' THEN DATEDIFF(s, DateStart, DateEnd) ELSE 0 END AS OffProd
INTO #ProdTmp
FROM dbo.vw_mos_DPL_Reporting
WHERE PendReason LIKE '%Prod%'
This produces a table with this output (this is only an excerpt, which is why this output doesn't sum to the one below):
UserID First_NM Last_NM MgrName OnProd OffProd
PATROI PAULA TROI JOHN CASEY 127 0
AMOWIT ANGELA MOWITH JOHN CASEY 11 0
AMOWIT ANGELA MOWITH JOHN CASEY 0 60
AMOWIT ANGELA MOWITH JOHN CASEY 28 0
AMOWIT ANGELA MOWITH JOHN CASEY 0 24
AMOWIT ANGELA MOWITH JOHN CASEY 0 9
PATROI PAULA TROI JOHN CASEY 44 0
DXLANT DONNA LANTEL JOHN CASEY 0 106
DXLANT DONNA LANTEL JOHN CASEY 0 5
DXLANT DONNA LANTEL JOHN CASEY 0 547
This is daily data, so each person has a record for each day for OnProd and OffProd data.
What I need to do is group this data up so it shows a single record for each user, and also creates a new field that sums up all On/Off Prod data.
This is what I have:
SELECT
UserID,
First_NM,
Last_NM,
MgrName,
SUM(OnProd)/60 as OnProd,
SUM(OffProd)/60 as OffProd
FROM #ProdTmp
Group By
UserID,
First_NM,
Last_NM,
MgrName
This is what it's giving me:
UserID First_NM Last_NM MgrName OnProd OffProd
AMOWIT ANGELA MOWITH JOHN CASEY 3 1
DXLANT DONNA LANTEL JOHN CASEY 21 55
PATROI PAULA TROI JOHN CASEY 51 2
So I have 2 questions here:
- How do I turn those OnProd/OffProd numbers into a HH:MM format, and
- How do I add a field that sums those 2 columns up and puts the result into a HH:MM format?