как сложить два столбца в одном выражении - PullRequest
1 голос
/ 10 апреля 2019

Запрос ниже возвращает 2 строки, но на самом деле мне нужна только одна;

select Datename(month, m.CreatedDate) as [Ay], sum(case when h.Cinsiyet=1 then 1 else 0 end) as [Group1], sum(case when h.Cinsiyet=2 then 1 else 0 end) as [Group2] from Muayene.Muayene m with(nolock)
join Ortak.Hasta h with(nolock) on m.HastaTc = h.HastaTc
group by  h.Cinsiyet, Datename(month, m.CreatedDate)

результат:

MonthName Group1 Group2
April     4500   0
April     0      9000

Ожидаемый результат:

MonthName Group1 Group2
April     4500   9000

IЯ знаю, что могу сделать это, обернув запрос другим оператором выбора, сгруппировав по месяцам и суммировав эти результаты. Но это неэффективно и выглядит грязным кодом.

Как мне сделать трюк, чтобы получить ожидаемый результат, не делая другогосправка о сумме?

1 Ответ

1 голос
/ 10 апреля 2019

Фикс GROUP BY:

select Datename(month, m.CreatedDate) as [Ay],
       sum(case when h.Cinsiyet = 1 then 1 else 0 end) as [Group1],
       sum(case when h.Cinsiyet = 2 then 1 else 0 end) as [Group2]
from Muayene.Muayene m join
     Ortak.Hasta h 
     on m.HastaTc = h.HastaTc
group by Datename(month, m.CreatedDate);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...