0

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

  • 状态类型是Open,TransferClose
  • 主键是 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)功能?

4

1 回答 1

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 
于 2013-03-22T16:57:24.773 回答