2011-09-20 4 views
0

У меня есть этот простой вопрос, но его не производит результаты, я хочу ... надеюсь, вы можете помочь:Sum DateDiff и группа по

Результат:

Construction  2 
Construction  3 
Emergency Funds  4 
Housing    5 
Seniors Services 9 
Seniors Services 185 

Что я хочу:

Construction  5 
Emergency Funds 4 
Housing   5 
Seniors Services 194 


SELECT T.NAME, SUM(DATEDIFF (HH,T.DATE_DUE,T.DATE_START))as Donation_Hours FROM TASKS T 
GROUP BY t.name, T.DATE_DUE,T.DATE_START 
order by name 
+1

я думаю, что вам нужно отправить некоторые выборочные данные, а также ... – Randy

ответ

3

Попробуйте это:

SELECT T.NAME, SUM(DATEDIFF(HH,T.DATE_DUE,T.DATE_START))as Donation_Hours 
FROM TASKS T 
GROUP BY t.name 
ORDER BY name 
0

Стэн, некоторые дополнительные детали помогут вам в решении этой проблемы. Определенная база данных, некоторые примеры данных и то, что вы имеете в виду, когда вы сравниваете то, что ваш результат и что вы хотите, должны быть включены как минимум.

Это, как говорится, я полагаю, что вы ссылаетесь на то, что у вас есть несколько экземпляров имени, а не единственный результат для имени с общей суммой разницы в часах. Если это ваша проблема, вы можете исправить это, удалив все в своей группе после t.name. Вы не обязаны помещать составляющие элементы агрегата в клаузулу по той же манере, какой вы были бы, если бы вы перечислили их отдельно.

Я предполагаю, что вы используете MSSQL через SSMS. Этот ответ был проверен на SQL2008 R2.