Используйте JOIN
и подзапросы для извлечения ваших данных, сгруппируйте каждый подзапрос по clientID.Объедините их вместе по clientIDs и получите свои результаты.Используйте LEFT JOIN
, если вы хотите видеть тех, у кого был какой-либо вклад в прошлом году, или используйте JOIN
, если вы просто хотите, чтобы те, кто пользовался на прошлой неделе.
SELECT y.clientID, ISNULL(w.useCount, 0) as WeeklyCount, y.useCount/52 as YearlyAverage
FROM (
SELECT clientID, SUM(useCount) as useCount
FROM usageData
WHERE DATEDIFF(week, useDate, @refdate) <= 52
GROUP BY clientID
) as y
LEFT JOIN (
SELECT clientID, SUM(useCount) as useCount
FROM usageData
WHERE DATEDIFF(week, useDate, @refdate) <= 1
GROUP BY clientID
) as w
ON y.clientID = w.clientID