Как я могу суммировать количество в моем запросе? Sql сервер запрос прилагается - PullRequest
0 голосов
/ 09 января 2019

Я хочу использовать сумму на счете, которую я уже использую в своем запросе.

select R.region_id as Id,R.region_name as Name, count(IR.Id) as AgencyreportCount,count(AR.Id) as IndividualreportCount 
     from region R 
left join governorate G
           on r.region_id=g.region_id
left join IndividualReports IR
            on g.governorate_id=IR.governorate_id
left join AgencyReports AR
            on g.governorate_id=AR.governorate_id
left join AgencyUsers AU
            on IR.AgencyUserId=AU.Id
left join Agencies A
            on AU.AgencyId=A.Id where A.Id=1
Group by R.region_id,R.region_name

Я хочу добавить итоговую сумму, используя эти цифры в моем запросе sum(count(IR.Id)+count(AR.Id)) as Total

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Я бы сказал что-то вроде этого:

select 
    R.region_id as Id
    ,R.region_name as Name
    ,IndividualReports.IndividualreportCount
    ,AgencyReports.AgencyreportCount
    ,isnull(IndividualReports.IndividualreportCount,0) + isnull(AgencyReports.AgencyreportCount,0) as TotalCountPerRegion
from region R 
outer apply (
    select count(*)
    from governorate G
    join IndividualReports IR
        on g.governorate_id=IR.governorate_id
    where r.region_id=g.region_id
) IndividualReports(IndividualreportCount)
outer apply (
select count(*)
    from governorate G
    join AgencyReports AR
        on g.governorate_id=AR.governorate_id
    where r.region_id=g.region_id
) AgencyReports(AgencyreportCount)
group by 
    R.region_id
    ,R.region_name

Если вы хотите получить общую сумму, просто возьмите все, кроме суммы, и оберните с помощью SUM ().

0 голосов
/ 09 января 2019

Полагаю, вам не нужен оператор SUM, просто добавьте оба COUNT вместе.

count(IR.Id) + count(AR.Id) as Total

Если вам не нужна общая сумма отсчетов независимых регионов, в которых будет использоваться оконный SUM.

SUM(count(IR.Id) + count(AR.Id)) OVER () as Total
...