Я пытаюсь получить всех пользователей, которые подтвердили событие, и следующий запрос показывает, как оно должно выглядеть
select us.ServiceId, s.Image, s.Title, s.CreatedTimestamp, (cast(count(us.Answer) as varchar(10))) +
'/' + (cast((select count(Id) from Users) as varchar(10))) [Confirmed / Total]
from Services s inner join UserServices us on s.Id = us.ServiceId
where us.ServiceId = '5cf37da7-e7ba-4652-8526-96b3ad19fd13'
group by us.ServiceId, s.Image, s.Title, s.CreatedTimestamp
Результат:
но я могу получить только тех пользователей, которые были подтверждены, я тоже хочу получить общее количество пользователей.
Я сделал лямбду с большинством полей, кроме общего количества пользователей:
Services.Join(UserServices, s => s.Id, us => us.ServiceId, (s, us) => new { s,us })
.Where(w => (w.us.ServiceId == "5cf37da7-e7ba-4652-8526-96b3ad19fd13"))
.GroupBy(gb => new
{
ServiceId = gb.us.ServiceId,
Image = gb.s.Image,
Title = gb.s.Title,
CreatedTimestamp = gb.s.CreatedTimestamp,
ConfirmedTotal = gb.us.Answer
}, gb => new { us = gb.us, s = gb.s })
.Select(sl => new
{
ServiceId = sl.Key.ServiceId,
Image = sl.Key.Image,
Title = sl.Key.Title,
CreatedTimestamp = sl.Key.CreatedTimestamp,
ConfirmedTotal = sl.Count(x => x.us.Answer)
})
Результат:
Итак, как это перевести или есть какой-то способ сделать это?