У меня есть таблица для регистрации вызовов методов.В нем есть столбцы LogId, MethodId, DateTime.
Мне нужно написать оператор выбора, который подсчитывает все журналы для определенных идентификаторов методов за определенный период времени, а также показывает количество журналов для конкретных методов за другое время.period.
Первый бит прост:
select
l.[MethodId],
count(l.[LogId]) as [Count]
from
[Log] l (nolock)
where
l.[DateTime] between @from and @to
and l.[MethodId] in @methodIds
group by
l.[MethodId]
Но теперь мне нужен второй столбец в этой таблице, Previous, который выглядел бы так, если бы он был в отдельной инструкции:
select
l.[MethodId],
count(l.[LogId]) as [Previous]
from
[Log] l (nolock)
where
l.[DateTime] between @before and @from
and l.[MethodId] in @methodIds
group by
l.[MethodId]
Не все методы будут иметь журналы за два периода времени, поэтому было бы неплохо, если бы объединение вставило 0 в столбцы count / previous в этих случаях вместо того, чтобы они были нулевыми.Это нормально, если у метода нет журналов в любой из этих периодов.
Я хочу видеть MethodId, Count, Previous
в одной таблице.Как мне это сделать?