2010-05-19 3 views
-3

Я планирую получить отчет для таблицы со следующей структурой таблицы:T-SQL запрос, чтобы получить SUM (COUNT())

ID    RequestDate 
----------------------------- 
1    2010/01/01 
2    2010/02/14 
3    2010/03/20 
4    2010/01/07 
5    2009/03/31 

Я хочу результаты как: I

D_Count RequestDate    Sum 
----------------------------------------- 
2    2010/01    2 
1    2010/02    3 
2    2010/03    5 

Помощь Pls.

+0

Вы имеете в виду T-SQL? 'RequestDate' является' varchar' или 'datetime'? –

+0

что вы суммируете? –

+0

RequestDate is DateTime и я суммирую D_Count – Ashish

ответ

5

Вы просто группировать по году и месяц дата части таблицы, чтобы получить количество в месяц и год:

select 
    count(*), datePart("yy", requestDate) + "/" + datePart("mm", requestDate) 
from table1 
group by 
datePart("yy", requestDate), datePart("mm", requestDate) 

Чтобы получить сумму этого вы должны иметь временную таблицу и затем обновите этот столбец временной таблицы temp с текущим итогом.

create table #temp (rowID identity(1,1) int, dateCount int, yearMonth varchar(50), runningTotal int) 

insert into #temp (dateCount, yearMonth, runningTotal) 
    select 
     count(*), datePart("yy", requestDate) + "/" + datePart("mm", requestDate) 
    from table1 
    group by 
    datePart("yy", requestDate), datePart("mm", requestDate) 

update #temp set runningTotal = (select sum(dateCount) from #temp a where a.rowID < #temp.rowID) 

select * from #temp 

drop table #temp 
+0

№ Это не разрешает запрос – Ashish

+0

+1: учитывая отсутствие информации, это о лучшем, что можно сделать – RedFilter

+0

Это разрешило мой запрос. – Ashish

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