繁体   English   中英

SQL:选择子查询和分组的最小值

[英]SQL: Select the minimum of a subquery and grouping

我有一些在MySQL DB中签入和签出人员的记录:

SELECT * FROM db

结果:

-----------------------------------------------------------------------
ID            Name       Lastname           in                out
1             James      Bond         20151014090000     20151014103000
2             James      Bond         20151014110000     20151014123000
3             James      Bond         20151014130000     20151014143000
4             James      Bond         20151014150000     20151014163000
5             James      Bond         20151014170000     20151014183000
6             James      Bond         20151014190000     20151014203000
7             Jason      Bourne       20151014090000     20151014103000
8             Jason      Bourne       20151014110000     20151014123000
9             Jason      Bourne       20151014130000     20151014143000
10            Jason      Bourne       20151014150000     20151014163000
11            Jason      Bourne       20151014170000     20151014183000
12            Jason      Bourne       20151014190000     20151014203000
13            Jack       Bauer        20151014090000     20151014103000
14            Jack       Bauer        20151014110000     20151014123000
15            Jack       Bauer        20151014130000     20151014143000
16            Jack       Bauer        20151014150000     20151014163000
17            Jack       Bauer        20151014170000     20151014183000
18            Max        Payne        20151014090000     20151014103000
19            Max        Payne        20151014110000     20151014123000
20            Max        Payne        20151014130000     20151014143000
21            Max        Payne        20151014150000     20151014163000
22            Max        Payne        20151014170000     20151014183000

考虑到其中的(IN),我想获取最接近当前日期的日期,即输入。

我正在使用它与MySQL中的当前日期进行比较:

date_format(now(), '%Y%m%d%H%i%S')

假设是20151014133000

我想从查询中得到的是:

3             James      Bond         20151014130000     20151014143000
9             Jason      Bourne       20151014130000     20151014143000
15            Jack       Bauer        20151014130000     20151014143000
20            Max        Payne        20151014130000     20151014143000

致意,并非常感谢您!

[edit1] in和out是int,我正在将其与该格式的实际时间进行比较,因为使用以下操作:date_actual-in_value = time_lapsed例如:

20151014133000-20151014090000 = 43000

如果获得time_lapsed的最小值,则将获得最接近date_actual的日期,然后在DB上搜索按名称和姓氏分组的日期。

如果我理解正确,则需要:

SELECT DISTINCT `Name`, `Lastname`, MAX(IN) FROM DB  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM