2016-10-11 10 views
0

従業員のリストを参照して、それらが出入りするかどうかを決定する選択クエリを作成する必要があります。SQL SELECT文のチェックインインインジケータの追加

社員、日付/時間、従業員がチェックインやアウト基づいている場合、私は識別するためにもっとして1つのレコードを持っているすべての従業員を検索して、新しい列を切り替える必要がある

:テーブルには、以下のデータを持っています日時に

Ex。

999, 2016-01-01: 9:00  -- This would have a column with 1 added 
999, 2016-01-01: 15:00 -- This would have a column with 2 added 
999, 2016-01-01: 18:00 -- This would go back to 1 

テーブルのすべての行を見るには、これが必要です。これは可能ですか?元のテーブルに変更を加えるためのアクセス権がありません。

+2

を動作するはず願っていますか?ルンゴモジュロ2? – jarlh

+0

訪問回数の偶数または奇数を試してみることができますか? – Efekan

答えて

0

私はそれはあなたがDBMSを使用している

SELECT employeeid,Cast (date/time as date), 
    (RANK() OVER 
    (PARTITION BY employeeid ORDER BY date/time)) as 'in/out' 
    FROM table 
    GROUP BY employeeid,Cast (date/time as date) 
+0

私はmssql 2012を使用しています。 – luger

+0

mssql 2012で動作していることをもう一度確認してください。 –

+0

すべての行に対してこれを行う必要があります。従業員に3行がある場合は、最後の3行だけでなく3行も表示する必要があります。上記の最大値は、すべての行が正しいようになります。 – luger

0

奇数または偶数をチェックしますか?

SELECT 
Employee_id, 
Date, 
IF(COUNT(*) % 2 = 0, 1, 2) AS 'Lastvisit' 
FROM 
table 
+0

これは無効な(標準の)SQLです。 –

+0

標準SQLとは何ですか? – Efekan

+0

SQL標準には「IF」はありません。一重引用符は文字定数であり、識別子ではありません( 'Lastvisit 'は' Lastvisit'として 'as 'でなければなりません)。また、 '%'演算子は非標準です。 –