在日期范围内选择最近合格的类型

时间:2013-03-22 16:55:31

标签: mysql max

我有一个包含ID,状态日期(序数)和状态类型的数据集。

  • 状态类型为OpenTransferClose
  • 主键是ID和状态日期的组合。所以ID会有多个 记录。

我正在尝试选择包含最近状态类型为“打开”或“转移”的日期范围内的ID的数据子集。

SELECT id, 
       status_date, 
       Date_format(Str_to_date(status_date, '%Y%j'), '%m/%d/%Y'), 
       status_type
FROM   my.TABLE 
WHERE  ( ( ( status_type = 'O' ) 
            OR ( status_type = 'T' ) ) 
         AND ( status_date <= 2012182 ) ) 

我应该使用MAX(Status_Date)还是LAST(Status_Date)功能?

1 个答案:

答案 0 :(得分:1)

LAST不是有效的MySQL函数,因此MAX将是适当的函数。您也不需要所有这些括号。

WHERE  ( status_type = 'O' 
          OR status_type = 'T' ) 
       AND status_date <= 2012182 

您也可以使用IN指定status_type的列表。

WHERE  status_type IN ('O', 'T') 
       AND status_date <= 2012182