GibboK
GibboK

Reputation: 73908

How to select from GROUP BY?

I have the following which print correctly:

MonthNumber 
Users
UserHits

I need also to have printed a column from Coefficient from dbo.ReportAudienceOverviews

How to change the SQL?

 SELECT DATEPART(mm, S.DateProcessStatus) as MonthNumber,
     --S.DeviceId, 
     SUM(A.Users) as Users,
     SUM(A.UsersHits) as UserHits
    FROM dbo.ReportAudienceOverviews A 
     LEFT JOIN dbo.ReportProcessStatuses S
     ON S.StatusId = A.StatusId
     AND S.DateProcessStatus >= '2014' AND S.DateProcessStatus < '2015'
    --WHERE S.DeviceId = 1 AND A.Coefficient = 20
    GROUP BY
     DATEPART(mm, S.DateProcessStatus), S.DeviceId
     ORDER BY MonthNumber ASC, S.DeviceId ASC

Upvotes: 0

Views: 53

Answers (1)

Tim Schmelter
Tim Schmelter

Reputation: 460058

You just have to include the column with MIN(Coefficient)(as mentioned in a comment):

SELECT DATEPART(mm, S.DateProcessStatus) as MonthNumber,
 --S.DeviceId, 
 SUM(A.Users) as Users,
 SUM(A.UsersHits) as UserHits,
 MIN(A.Coefficient) as Coefficient
FROM dbo.ReportAudienceOverviews A 
 LEFT JOIN dbo.ReportProcessStatuses S
 ON S.StatusId = A.StatusId
 AND S.DateProcessStatus >= '2014' AND S.DateProcessStatus < '2015'
--WHERE S.DeviceId = 1 AND A.Coefficient = 20
GROUP BY
 DATEPART(mm, S.DateProcessStatus), S.DeviceId
 ORDER BY MonthNumber ASC, S.DeviceId ASC

Upvotes: 2

Related Questions