2013-03-26 3 views
0

Как объединить два ряда в один.Как объединить два ряда в один?

EMPCode actHours actDate  rowno 
107 8.00  2013-01-21 1 
107 8.30  2013-01-22 1 
107 4.00  2013-01-23 1 
107 4.00  2013-01-23 2 
107 4.10  2013-01-24 1 
107 4.20  2013-01-24 2 
107 4.30  2013-01-25 1 
107 4.30  2013-01-25 2 

I want the result as follows: 

actHours actDate 
8.00  2013-01-21 
8.30  2013-01-22 
8.00  2013-01-23 
8.30  2013-01-24 
9.00  2013-01-25 

Любая помощь будет оценена по достоинству. Заранее спасибо :-)

ответ

2

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

SELECT SUM(actHours) actHours, actDate FROM Tbl GROUP BY actDate 

На самом деле, если вы предоставите типы данных столбцов, ответ может быть более конкретным.

+0

спасибо за ответ..активно тип данных actHours является числовым (5,2) –

0

что, если данные содержат эти ..

108 3.40  2013-01-26 1 
108 3.50  2013-01-26 2 

если тип данных time, то и можно использовать этот запрос ..

with datecte 
as 
(
SELECT actDate, SUM(DATEDIFF(MINUTE, '0:00:00', actHours)) actHours 
FROM Tb1 
GROUP BY actDate 
) 
SELECT actDate, 
actHours = RTRIM(actHours/60) + ':' + RIGHT('0' + RTRIM(actHours%60),2) 
FROM datecte 
+0

Да, вы правы. –

+0

поблагодарить Ram, но тип данных является числовым. –

+0

@ram Вместо публикации в качестве другого ответа попробуйте отредактировать свой единственный пост и указать различные решения проблемы в 'том же 'сообщении – praveen

0

использовать это то,

with datecte 
as 
(
select actDate, SUM(DATEDIFF(MINUTE, '0:00:00', actHours)) actHours 
from (
    SELECT actDate,CAST(REPLACE(actHours,'.',':') as time) actHours 
    FROM #tb1 
    ) k 
group by actDate 
) 


SELECT actDate, 
actHours = RTRIM(actHours/60) + ':' + RIGHT('0' + RTRIM(actHours%60),2) 
FROM datecte 

Надежда это дает вам решение ..

OK @praveen ..

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