SQL Сервер: общее количество внутренних соединений - PullRequest
1 голос
/ 10 января 2020

Я работаю над базой данных SQL Server 2008 (до раздела) и пытаюсь подсчитать итоги, используя внутренние объединения. Я выполнил несколько онлайн-уроков, но не могу получить желаемые результаты.

Это базовые данные ...

 Compdate   count
 ------------------
 2          198
 3           29
 4           22
 5           27
 6           31
 9           18
 10          16
 11          22
 12          26
 etc...

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

Это запрос, который я создал до сих пор ...

select 
    t1.Compdate,
    t1.count,
    Sum(t2.count) as 'Total'
from 
    DB_KpiTr_Remo_CumComp_TV t1
inner join 
    (select count, compdate 
     from DB_KpiTr_Remo_CumComp_TV 
     where Month like 'l%') t2 on t1.Count >= t2.Count
                               and t1.Compdate = t2.Compdate
where 
    t1.Month like 'l%'
group by 
    t1.Compdate, t1.count
order by  
    t1.Compdate

select Compdate, count
from DB_KpiTr_Remo_CumComp_TV t1

Но я получаю только те же цифры в моем общем столбце ...

Compdate    count   Total
-------------------------
2           198     198
3            29      29
4            22      22
etc...

Я перепробовал несколько комбинаций объединений, и я получил несколько комбинаций результатов, но не тот, который искал - чего мне здесь не хватает?

1 Ответ

2 голосов
/ 10 января 2020

Вы можете использовать apply:

select u.*, u2.running_count
from underlying u outer apply
     (select sum(u2.count) as running_count
      from underlying u2
      where u2.compdate <= u.compdate
     ) u2
...