2013-12-24 1 views
-1
ID   Time     Status 
----------- ----------------------- -------------------------------------------------- 
1   2013-12-24 00:00:00  on 
2   2013-12-25 00:00:00  on 
3   2013-12-26 00:00:00  on 
4   2013-12-27 00:00:00  on 
5   2013-12-28 00:00:00  on 
6   2013-12-29 00:00:00  on 
7   2013-12-30 00:00:00  on 
8   2013-12-31 00:00:00  on 
9   2013-12-24 00:00:00  off 
10   2013-12-25 00:00:00  off 
11   2013-12-27 00:00:00  off 
12   2013-12-27 00:00:00  on 
13   2013-12-27 00:00:00  off 
14   2013-12-27 00:00:00  on 
15   2013-12-27 00:00:00  off 
16   2013-12-28 00:00:00  on 
17   2013-12-28 00:00:00  off 
18   2013-12-28 00:00:00  on 
19   2013-12-29 00:00:00  off 
20   2013-12-29 00:00:00  on 
21   2013-12-30 00:00:00  off 
22   2013-12-30 00:00:00  on 
23   2013-12-30 00:00:00  off 
24   2013-12-30 00:00:00  on 
25   2013-12-30 00:00:00  off 
26   2013-12-31 00:00:00  on 
27   2013-12-31 00:00:00  off 
28   2013-12-31 00:00:00  on 
29   2013-12-31 00:00:00  off 
30   2013-12-31 00:00:00  on 
31   2013-12-31 00:00:00  off 

Мое имя таблица abc и я хочу, чтобы организовать datewise данных и статус мудрого с отсчетами на и эпизодах выключения datewiseКоличество запросов Требуются в SQL Server 2008

+1

не делайте этого cross post: http://stackoverflow.com/questions/20764358/count-query-required/ –

ответ

0
Select time, SUM(on_cnt),SUM(off_cnt) FROM 
(select time,[on] as on_cnt,[off] as off_cnt from table1 
pivot 
(
count(Status) 
for Status in ([on],[off]) 
) as p) as st 
GROUP BY time 

Fiddle

+0

Отлично работает, но использует 3 соединения, не является ли способ минимизировать количество соединений? – asadcs

+0

проверить сейчас. Устранено присоединение –

0

Как насчет чего-то вроде

SELECT 
[Time], 
SUM(CASE WHEN [Status] = 'On' THEN 1 ELSE 0 END) CntON, 
SUM(CASE WHEN [Status] = 'Off' THEN 1 ELSE 0 END) CntOff 
FROM Table 
GROUP BY [Time] 
+0

Это хорошо и работает, но его повторение даты вроде – asadcs

+0

Оно будет только повторять дату, если у нее тоже есть часть времени, из вашего примера это не так. Так у него есть временная часть? –

+0

ОК, я понимаю, да, у него другое время, вы правы – asadcs

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