0

2 つの行を 1 つに結合する方法。

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  

どんな助けでも大歓迎です。前もって感謝します :-)

4

3 に答える 3

2

これを試して:

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

実際、列のデータ型を指定すると、答えはより具体的になります。

于 2013-03-26T10:42:52.577 に答える
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..

于 2013-03-26T13:05:04.920 に答える
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
于 2013-03-26T11:31:43.930 に答える