SELECT id,date, [time] = STUFF
((SELECT ',' + [time] FROM tb t
WHERE id = tb.id AND date=tb.date FOR XML PATH('')) , 1 , 1 , '')
FROM tb WITH(NOLOCK)
GROUP BY id,date
Select uuid
,'2014-04-01'
,(select Max(刷卡時間) from tb_kaoqin_time where uuid = HumanBas.uuid and addtime = ‘2014-04-01’ ) 上班時間
,(select Min(刷卡時間) from tb_kaoqin_time where uuid = HumanBas.uuid and addtime = ‘2014-04-01’ ) 下班時間
From HumanBas (人事基本資料)
希望你看懂我的寫法,就是用MAX 和MIN 函式求出當天刷卡最低值(上班時間),最高值(下班時間)
uj5u.com熱心網友回復:
select 人員編號, date_format(時間,'%Y-%m-%d') 日期,
group_concat( DATE_FORMAT(時間,'%T') order by DATE_FORMAT(時間,'%T') separator '\n' )
from sc_dict
group by 人員編號, date_format(時間,'%Y-%m-%d')
select uuid,substr(addtime,0,10), group_concat(substr(addtime,12,20) separator '分隔符') from table group by uuid,substr(addtime,0,10)
手機上寫的,思路是,首先拿出id和日期來,然后將其打卡記錄的小時等拿出,使用concat拼接,就好了。。還有你得確保每個人每天打卡的記錄只有兩天,還有就是上面的函式可以排序。。。應該就夠了
uj5u.com熱心網友回復:
select
人員編號,
DATE_FORMAT(時間,'%Y-%m-%d') as 日期,
CONCAT(min(DATE_FORMAT(時間,'%H:%i:%s')),', ',max(DATE_FORMAT(時間,'%H:%i:%s'))) as 時間
from 表
GROUP BY 人員編號,日期