我有一个包含id、状态日期(顺序)和状态类型的数据集。
- 状态类型为
Open
、Transfer
或Close
- 主键是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)
功能?
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