2014-12-27 3 views
0

У меня есть таблица:заказ уникальные счета по дате

create table remote (account int ,datecreated datetime,status int) 
insert into remote (account , datecreated,status) 
values 

(123,'2015-08-25',1), 
(123,'2015-08-25',1), 
(123,'2015-09-26',1), 
(1238,'2015-08-25',1), 

(123,'2014-08-25',1), 
(123,'2014-08-26',1), 
(1238,'2014-08-25',1), 
(1238,'2014-08-25',1), 
(1235,'2014-08-25',1), 

(1234,'2014-09-22',1), 
(1234,'2014-09-22',1), 

(1234,'2014-10-29',1), 
(1236,'2014-10-25',1); 

Отсюда я хотел бы получить уникальный счетчик счета за каждый месяц/год, где статус = 1 Например, используя данные выше:

выход будет

count | month 
------------- 
1  |9/2015 
2  |8/2015 
2  |10/2014 
1  |9/2014 
3  |8/2014 

Как я могу сделать эту работу?

Я использую SQL 2012.

ответ

0

Использовать группу по month и year из datecreated, чтобы пропустить часть дня в графе. использовать тот же месяц и год в order by desc. Тогда Конкатенируйте месяц и год, чтобы получить результат

SELECT [Count], 
     [Mon/Year]= CONVERT(VARCHAR(2), [Month]) + '/' + CONVERT(VARCHAR(4), [year]) 
FROM (SELECT [year]=Year(datecreated), 
       [month]= Month(datecreated), 
       [Count]= Count(distinct account) 
     FROM remote 
     GROUP BY Year(datecreated), 
       Month(datecreated)) a 
ORDER BY [year] DESC,[Month] DESC 

Результат

Count Mon/Year 
----- -------- 
1  9/2015 
3  8/2015 
2  10/2014 
1  9/2014 
5  8/2014 
+0

из вышеуказанных данных должно быть только 1 9/2014 , так как он имеет тот же номер счета, http://sqlfiddle.com/#!6/3f5db/1 – jfishbow

+0

@jfishbow Обновлено сейчас проверить http://sqlfiddle.com/#! 6/3f5db/2 –

0

Это group by запрос с фильтром и некоторой логики даты и времени:

select year(datecreated) as yr, month(datecreated) as mon, count(*) 
from remote 
where status = 1 
group by year(datecreated), month(datecreated) 
order by yr desc, mon desc; 

Это ставит год и месяц на отдельные столбцы. Вы можете объединить их вместе в одно значение, если хотите.

+0

@RyanVincent. , , Спасибо. –

Смежные вопросы