2013-05-23 3 views
3

У меня есть этот запрос:Group результат из функции DATEDIFF в SQL

SELECT DATEDIFF(DAY,wj_date,wj_donedate) AS tmpDay 
FROM wssjobm , sysbrxces WHERE wj_br = zu_br AND zu_user = 'mbs' 
AND wj_date >= '2013/04/01' AND wj_date <= '2013/04/30' 
AND wj_status = 'D' AND wj_donedate <= '2013/04/30' 

ЭГ. Результат:

tmpDay 
1 
11 
5 
1 
7 
2 
12 
10 
2 
2 

Как я группа по результату и считать его с помощью запроса, чтобы быть похожим на это:

tmpDay count 
    1  2 
    2  3 
    5  1 
    7  1 
    10 1 
    11 1 
    12 1 

спасибо!

Extra Вопрос:

Могу ли я получить результат, как это:

tmpDayGroup Count 
    1- 4  5 
    5- 8  2 
    11 -12  3 
+0

Если это не так, это связано с 'MsSql server', которые добавлены при редактировании сообщения ur. –

ответ

4

Try:

SELECT 
    tmpDay, 
    COUNT(*) [Count] 
FROM 
    YourTable 
Group By tmpDay 

Для данного примера, запрос должен быть как:

SELECT 
    DATEDIFF(DAY,wj_date,wj_donedate) AS tmpDay, 
    COUNT(*) [Count] 
FROM 
    wssjobm , sysbrxces 
WHERE 
    wj_br = zu_br AND 
    zu_user = 'mbs' AND 
    wj_date >= '2013/04/01' AND 
    wj_date <= '2013/04/30' AND 
    wj_status = 'D' AND 
    wj_donedate <= '2013/04/30' 
GROUP BY DATEDIFF(DAY,wj_date,wj_donedate) 

Для gro в этом случае, попробуйте:

;with T as(
    select '1' FrmD, '4' ToD union all 
    select '5' FrmD, '8' ToD union all 
    select '9' FrmD, '12' ToD 
) 
select 
    T.FrmD +'-'+ T.ToD tmpDayGroup, 
    COUNT(*) [Count] 
from T Left Join (
    SELECT 
     DATEDIFF(DAY,wj_date,wj_donedate) AS tmpDay 
    FROM 
     wssjobm , sysbrxces 
    WHERE 
     wj_br = zu_br AND 
     zu_user = 'mbs' AND 
     wj_date >= '2013/04/01' AND 
     wj_date <= '2013/04/30' AND 
     wj_status = 'D' AND 
     wj_donedate <= '2013/04/30' 
) T2 on T2.tmpDay between T.FrmD and T.ToD 
group by T.FrmD, T.ToD 
+0

Спасибо. Это работает. – user2412351

+0

У меня есть дополнительный вопрос. Может, помогите мне? см. выше. Я уже редактирую. – user2412351

+0

На каком основании необходимо выполнить группировку? – TechDo

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