简体   繁体   中英

Sql Server Aggregate function

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.

怎么样:

GROUP BY DATEPART(YEAR, ShowDate), DATEPART(WEEK, ShowDate)

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM