I have 2 queries which gather one half of the data i need and the other half from the other query, the data i get needs to be added by the data in the other query.
First Query...
SELECT
RO_OFFICER,RO_ACTIVITY , COUNT(RO_ACTIVITY)*Value as [Value*NumofActivity]
FROM
RoleCall.dbo.ROSTER as ro inner join [RSWH].DBO.[RSWHT_Hours_Assigned_To_Markers_LookUp] AS MR on RO_ACTIVITY = MR.MARKER
WHERE
ro_officer = '41584 '
AND RO_STATUS = 'INFO'
AND RO_SHIFT_START between DATEADD(week, -12, GETDATE()) AND GETDATE()
GROUP BY
RO_OFFICER,RO_ACTIVITY,Value
and the data returned is ...
RO_OFFICER RO_ACTIVITY Value*NumofActivity
41584 AVDAY 0
41584 AVNIGHT 0
41584 CALLIN 0
41584 LATE 0
41584 LEAVE 30
41584 MSGLEFT 6
41584 NOCONTACT 54
41584 NOTAVAIL 30
41584 OTHER 12
41584 REFUSED 84
2nd query...
SELECT
RO_OFFICER ,(ISNULL(SUM(RO_SHIFT_LENGTH - RO_BREAK_LENGTH), 0.0)/60.0)as [NumOfHoursWorkedInTheLast12Weeks],RSWH.dbo.RSWHF_GetMarker(RO_OFFICER, DATEADD(week, -12, GETDATE()), GETDATE()) AS Markers
FROM
ROLECALL.DBO.ROSTER as ro inner join [RSWH].DBO.[RSWHT_Hours_Assigned_To_Markers_LookUp] AS MR on RO_ACTIVITY = MR.MARKER
WHERE
RO_SHIFT_START >= DATEADD(week, -12, GETDATE()) AND RO_SHIFT_START <= GETDATE()
AND RO.RO_STATUS = 'INFO'
AND RO_OFFICER = '41584'
GROUP BY
RO_OFFICER
which returns....
RO_OFFICER NumOfHoursWorkedInTheLast12Weeks Markers
41584 166.066666 AVDAY(3), AVNIGHT(1), CALLIN(1), LATE(4), LEAVE(5), MSGLEFT(1), NOCONTACT(9), NOTAVAIL(5), OTHER(2),
I need to Sum the Value*NumofActivity column from the first query and then add numofhoursworkedinthelast12weeks from the second query.
So the Final Outcome should look something like this...
Ro_Officer TotalHours
41584 382
Help will be much appreciated
How about something like this? You may want to replace the join with a left or right join if appropriate but a join should work in any case.
Select a.RO_OFFICER, a.[Value*NumofActivity] + b.NumOfHoursWorkedInTheLast12Weeks [TotalHours]
from
(SELECT
RO_OFFICER [RO_OFFICER],RO_ACTIVITY , COUNT(RO_ACTIVITY)*Value as [Value*NumofActivity]
FROM
RoleCall.dbo.ROSTER as ro inner join [RSWH].DBO.[RSWHT_Hours_Assigned_To_Markers_LookUp] AS MR on RO_ACTIVITY = MR.MARKER
WHERE
ro_officer = '41584 '
AND RO_STATUS = 'INFO'
AND RO_SHIFT_START between DATEADD(week, -12, GETDATE()) AND GETDATE()
GROUP BY
RO_OFFICER,RO_ACTIVITY,Value) a
JOIN
(SELECT
RO_OFFICER [RO_OFFICER] ,(ISNULL(SUM(RO_SHIFT_LENGTH - RO_BREAK_LENGTH), 0.0)/60.0)as [NumOfHoursWorkedInTheLast12Weeks],RSWH.dbo.RSWHF_GetMarker(RO_OFFICER, DATEADD(week, -12, GETDATE()), GETDATE()) AS Markers
FROM
ROLECALL.DBO.ROSTER as ro inner join [RSWH].DBO.[RSWHT_Hours_Assigned_To_Markers_LookUp] AS MR on RO_ACTIVITY = MR.MARKER
WHERE
RO_SHIFT_START >= DATEADD(week, -12, GETDATE()) AND RO_SHIFT_START <= GETDATE()
AND RO.RO_STATUS = 'INFO'
AND RO_OFFICER = '41584'
GROUP BY
RO_OFFICER) b on a.RO_OFFICER = b.RO_OFFICER
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.