У меня есть таблица, в которой есть клиенты, перечисленные каждый месяц с и active_indicator. Для каждого клиента я хочу вытащить активный индикатор всего на два месяца (декабрь 2014 года и декабрь 2015 года), но когда я пишу приведенный ниже код, я получаю таблицу, в которой каждый клиент указан дважды. Я знаю, что могу сделать еще один шаг, чтобы свернуть таблицу на уровень клиента с помощью max, но все равно сделать это в одном простом SQL-запросе?Как написать этот SQL без дублирования клиента?
select distinct
customer
,case when date='2015-12-01' then active_indicator else 0 end as Dec2015_active_ind
,case when date='2014-12-01' then active_indicator else 0 end as Dec2014_active_ind
from monthly_account_cust
where date in ('2015-12-01', '2014-12-01')
order by customer
Использованы теги dbms (MySQL или MS SQL Server?). Тип данных для столбца «дата»? – jarlh
Если вы не суммируете это, вы получите две строки, предполагающие наличие двух строк, соответствующих критериям даты. –