Reputation: 205
I have a select query as,
SELECT isnull(T1.TotalShows, 0) AS TotalShows, isnull(T1.ScreenCapacity, 0) AS ScreenCapacity, isnull(T1.ShowDate, 0) AS ShowDate, isnull(T2.TotalTicketsSold, 0) AS TotalTicketsSold, isnull(T2.Nett, 0) AS Nett
FROM (
SELECT COUNT(showtimeId) AS TotalShows, sum(sc.Capacity) AS ScreenCapacity, ShowDate
FROM Shows s
JOIN Screens sc ON sc.ScreenID = s.ScreenID
WHERE s.MovieID = 34
AND s.IsDeleted = 0
GROUP BY ShowDate
) AS T1
LEFT OUTER JOIN (
SELECT s.ShowDate, COUNT(ut.UserTicketID) AS TotalTicketsSold, SUM(ISNULL((Price + ConvinienceCharge - DiscountAmount) / (EntertainmentTax + BoxOfficeTax + 1), 0)) AS Nett
FROM Shows s
LEFT OUTER JOIN UserTickets ut ON s.ShowID = ut.ShowID
WHERE ut.ShowID IN (
SELECT ShowID
FROM Shows
WHERE MovieID = 34
AND IsDeleted = 0
GROUP BY ShowID
)
GROUP BY s.ShowDate
) AS T2 ON T1.ShowDate = T2.ShowDate
This returns data as,
I want to aggregate data as
SUM(totalShows),SUM(ScreenCapacity),MAX(ShowDate),SUM(TotalTicketsSold),SUM(Nett)
But I want this only for first 7 rows as shown in above image. For more than 7 rows I want the aggregated data in the next row.
Upvotes: 0
Views: 382
Reputation: 129832
How about:
GROUP BY DATEPART(YEAR, ShowDate), DATEPART(WEEK, ShowDate)
Upvotes: 1