Im пытается генерировать общее количество по месяцам и годам. Я попробовал несколько примеров, но я не могу заставить его работать. Это SQL у меня есть, и я хотел бы создать нарастающий итог для колонки totalclientssql running total
Month| Year| TotalClients| Running Total
Jan |2014| 1| 1
Feb| 2014| 4| 5
Mar| 2014| 8| 13
select Month, Year, TotalClients
From Total
Это код, который я пытался использовать, ив использовал таблицу объявит как основной данные поступает из другого запроса но это должен быть бит, который вам нужен. Я также прокомментировал одну из из линий, как я пробуя как путь, то закомментирована линия была в несколько примеров на сети, но я не мог заставить его работать
select t1.monthstart, t1.yearstart, t1.TotalClients, sum(t2.TotalClients) as 'RunningTotal'
from @Totals t1 inner join @Totals t2 on t1.monthstart = t2.monthstart and t1.yearstart = t2.yearstart
--from @Totals t1, @Totals t2
WHERE t1.MonthStart <= t2.MonthStart and t1.Yearstart <= t2.Yearstart
GROUP BY t1.Yearstart, t1.MonthStart, t1.TotalClients
ORDER BY t1.yearstart , t1.monthstart
Какая версия SQL Server? Кроме того, вы заявляете, что попробовали несколько примеров, вы должны включить этот код. Это может быть простое исправление для вашего текущего кода. – Taryn
Возможно использование оконного набора, использующего что-то вроде 'Count (ClientID) over ( раздел на (год + месяц)' Вот еще другие варианты http://sqlperformance.com/2014/01/t-sql-queries/grouped-running- итоговые значения – xQbert
@xQbert раздел по году + месяц, как правило, не очень хорошая идея. Попробуйте разделить на год, месяц, чтобы избежать 2014 + 01 = 2015 –