看板 Database 關於我們 聯絡資訊
資料庫名稱: SQL Server 資料庫版本: 2012 內容/問題描述: 目前有一TABLE checktime 紀錄刷卡時間 主要欄位有 type 上班下班的區別('I','O') chktime 紀錄刷卡時間 我想在同一列中同時顯示上班跟下班的打卡時間和時間差 不過在GROUP條件中如果不用Group by type的話, 無法在SELECT做為條件去判斷是上班打卡或下班打卡 可是GROUP的話,又無法做在同一列中 要怎麼以(下方想到的約略寫法) SELECT check_in,check_out,worktime FROM ( SELECT (CASE type WHEN 'I' then MIN(chktime) END) check_in, (CASE type WHEN 'O' then MAX(chktime) END) check_out DATEDIF(mi,blablabla,blablabla) FROM checktime GROUP BY type,CONVERT(char(10), chktime, 121) ) as chktime 把不同列的checktime在同一列裡顯示上下班打卡時間和時間差呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.255.146.13 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1465766870.A.699.html ※ 編輯: JYHuang (111.255.146.13), 06/13/2016 05:28:26
streetbad: 試作了一下 可以用JOIN自己的方式... 06/13 11:47
streetbad: JOIN 第一次的條件是Type = 'I' 第二次是Type = 'O' 06/13 11:51
streetbad: 然後SELECT的部分就是第一次的MIN跟第二次的MAX 06/13 11:51
JYHuang: 感謝,早上又試了一下。外面再包了一層SELECT GROUP 06/13 12:43
JYHuang: 外面也是用max,min來取check in check out的值。 06/13 12:44
JYHuang: 似乎就OK了 06/13 12:44