【发布时间】:2018-05-27 02:33:02
【问题描述】:
我有一个格式如下的表格。
EMP NUMBER, ATT DATE, ATT TIME
00001 01-03-2018 08:45
00001 01-03-2018 20:50
00001 02-03-2018 08:00
00001 02-03-2018 18:50
我被要求得到以下结果:
EMP NUMBER, ATT DATE, IN TIME, OUT TIME
00001 01-03-2018 08:45 20:50
00001 02-03-2018 08:00 18:50
我设法使用以下查询:
SELECT EMP_NUMBER, ATT_DATE,MIN(ATT_TIME) AS IN_TIME,MAX(ATT_TIME) AS OUT_TIME
INTO TABLE1
FROM FJ
GROUP BY EMP_NUMBER,ATT_DATE
即使我得到了我想要的答案,但我担心员工在晚上 10 点之前登录并在第二天早上 5 点离开时的情况,因此我尝试了以下方法:
SELECT EMP_NUMBER, ATT_DATE,
CASE
WHEN ATT_TIME >= 12
THEN MIN(ATT_TIME)
ELSE MAX(ATT_TIME)
AS IN_TIME,
CASE
WHEN ATT_TIME < 12
THEN MIN(ATT_TIME)
ELSE MAX(ATT_TIME)
AS OUT_TIME,
INTO TABLE1
FROM FJ
GROUP BY EMP_NUMBER,ATT_DATE
这会在“AS”附近引发语法错误,您能帮我弄清楚我哪里出错了吗?提前致谢。
【问题讨论】:
-
在我看来你应该找一个不同的键盘。您现在使用的那个似乎有一个卡住的 CAPS LOCK 键。您应该替换它,因为您不希望这里(或互联网上的其他任何地方)的人认为您在对他们大喊大叫。
-
求你了,别喊了! case 的语法是
CASE ... END。你忘了END。
标签: mysql sql sql-server