Как превратить несколько операторов объединения в одну строку в SQL Server - PullRequest
0 голосов
/ 14 мая 2019

Как бы превратить этот запрос в одну строку с разными именами столбцов.

 Select count(distinct accountid) as x
 from table1
 where active = 1
 and expiredate >= GetDate()
 and acceptedon is not null
 union
 Select count(distinct accountid) as x
 from table1
 where active = 1
 and expiredate <= GetDate()
 and acceptedon is not null

Я получу

x

5

4

Мне бы хотелось

x    y

5    4

1 Ответ

3 голосов
/ 14 мая 2019

Вы хотите простую условную агрегацию:

Select count(distinct case when expiredate >= GetDate() then accountid end) as x,
       count(distinct case when expiredate <= GetDate() then accountid end) as y
from table1
where active = 1 and acceptedon is not null;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...