2012-01-05 8 views
0

これは私のタスクの単純化バージョンです。私は、ユーザーのためのタイムスタンプの入ったテーブルを持っています。テーブルの列は、id、username、timeIn、timeOutです。私は、アクティビティの順序で結果を順序付けして出力するレポートを作成し、それが印刷のためにイン/アウトであるかどうかを追跡したいと考えています。私の唯一のアイデア、これまで二つの配列とinTimeArrayとoutTimeArrayを作成することですし、それらをループ、mysqlクエリ.2つの日付カラムを注文し、それが元のカラムを保持しています。

if (inTimeArray > outTimeArray) { 
    print time in: timestamp; 
} else { 
print timeout:; 
} 

出力 ジョン:で時間 ルーシー:時間 スティーブ中:時間 ルーシーアウト:時間 ジョエル中:時間 スティーブアウト:時間が ルーシーに:など

+0

詳細を取得できますか? 'timeIn'はいつ使われ、' timeOut'はいつ使われますか? – Eric

答えて

1

時間 あなたのクエリでcaseステートメントを使用することができます。

select 
    id, 
    username, 
    timeIn, 
    timeOut, 
    case when timeIn > timeOut then timeIn else timeOut end as timestamp 
from 
    users 

次に、timestamp = timeInかtimeOutかどうかを比較できます。さらに、別の列を追加することもできます。

case when timeIn > timeOut then 0 else 1 end as IsTimeOut 

いずれの方法でも実際には機能します。

1
select *, 
least(timein,timeout) as lower, 
if(timein < timeout,'in_time','out_time') as description 
from table 
order by lower 
関連する問題