0

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)関数を使用する必要がありますか?

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 に答える