2013-03-26 126 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) – 2013-03-26 10:50:21

0

如果什麼數據包含這些..

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

如果數據類型爲time,則U可以使用此查詢..

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

是的,您是對的。 – 2013-03-26 11:40:58

+0

感謝Ram,但數據類型是數字。 – 2013-03-26 12:44:37

+0

@ram而不是張貼爲不同的答案,嘗試編輯您的單個帖子,並指定不同的解決方案,以解決相同的問題 – praveen 2013-03-26 13:20:16

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 ..