I have tried using what you suggested and it doesn't seem to be working. Below is the query I have that created the table I sent you:
SELECT S.FieldName, F.PointID, F.MeasurementDate, F.NominationCycle, F.LocationType,
CASE WHEN F.LocationType = 'W' THEN -F.ScheduledVolume ELSE F.ScheduledVolume END AS ScheduledVolume
FROM tblFlowData F INNER JOIN
SascoPoints S ON F.PointID = S.PointID
WHERE
(F.MeasurementDate BETWEEN DATEADD(DAY,-8,GETDATE()) AND GETDATE() AND F.NominationCycle = 'I2') OR
(F.MeasurementDate = CONVERT(VARCHAR(8), GETDATE(), 112))
This is my implementation of what you suggested:
SELECT FieldName, PointID, MeasurementDate, NominationCycle, 'G' as LocationType, SUM(ScheduledVolume) AS Volume
FROM (
SELECT S.FieldName, F.PointID, F.MeasurementDate, F.NominationCycle, F.LocationType,
CASE WHEN F.LocationType = 'W' THEN -F.ScheduledVolume ELSE F.ScheduledVolume END AS ScheduledVolume
FROM tblFlowData F INNER JOIN
SascoPoints S ON F.PointID = S.PointID
WHERE
(F.MeasurementDate BETWEEN DATEADD(DAY,-8,GETDATE()) AND GETDATE() AND F.NominationCycle = 'I2') OR
(F.MeasurementDate = CONVERT(VARCHAR(8), GETDATE(), 112))
) as Q
WHERE LocationType IN ('I','W')
Group By MeasurementDate, FieldName, PointID, NominationCycle
ORDER BY FieldName, PointID, MeasurementDate