определение сезонного оборота на основе месяцев

#sql-server

#sql-server

Вопрос:

Я должен определить общий оборот за сезон. Для этого я должен комбинировать разные даты (месяцы), но проблема в том, что мой код выдает месяцы отдельно и указывает за каждым месяцем, к какому сезону он относится, и каков оборот за месяц. Это относится к каждому году, поскольку в моей базе данных есть даты (месяцы) разных лет. Меня интересуют не годы, а сезоны. Следовательно, я хочу рассчитать общий оборот за сезон (за все годы), не рассматривая месяцы как результат. Как я могу это сделать и что я делаю неправильно в своем коде?

 SELECT
    MONTH(H.Startdate) AS Month
    , SUM((DATEDIFF(DAY, H.Startdate, H.Enddate)   1) * F.DayPrice)   SUM((DATEDIFF(DAY, H.Startdate, H.Enddate)   1) * A.DayPrice)   SUM(CostReparation) AS TotalTurnover
    , (CASE
           WHEN MONTH(H.Startdate) IN (12, 1, 2) THEN 'Winter'
           WHEN MONTH(H.Startdate) IN (3, 4, 5) THEN 'Spring'
           WHEN MONTH(H.Startdate) IN (6, 7, 8) THEN 'Summer'
           WHEN MONTH(H.Startdate) IN (9, 10, 11) THEN 'Fall'
       END
      )  AS Seasons
FROM
    RentContract                 AS H
    INNER JOIN RentedCar         AS VF
        ON H.RentContractNr = VF.RentContractNr
    INNER JOIN Car               AS F
        ON VF.FrameNr = F.FrameNr
    INNER JOIN RentedAccessories AS VA
        ON H.RentContractNr = VA.RentContractNr
    INNER JOIN Accessories       AS A
        ON VA.Barcode = A.Barcode
    INNER JOIN Damage            AS S
        ON H.RentContractNr = S.RentContractNr
WHERE
    Status = 'Paid'
GROUP BY
    YEAR(H.Enddate)
    , MONTH(H.Startdate)

-- HAVING    MONTH (H.Startdate) IN (12, 1, 2)

ORDER BY
    MONTH(H.Startdate) ASC OFFSET 0 ROW

GO
 

Комментарии:

1. пожалуйста, предоставьте образцы данных и желаемый результат

2. GROUP BY CASE WHEN MONTH(H.Startdate).......