2011-11-11 15 views
0

私はmysqlとビジュアルベーシックを使用してサインイン/アウトプログラムを作成しており、少し助けが必要です。 私はevent_inevent_outの2つのテーブルを持っていて、それぞれのテーブルの下に私はevent_idを持っています。これは自動的に各行の番号(1から始まります)を生成します。私はそれがユーザーに基づいて数字を生成することが可能かどうか疑問に思っていた。 ユーザーAが来てサインインすると、1がevent_idに生成されたとしましょう。ユーザーBが来てサインインします。私も彼のために1を生成したいので、すべてのユーザーAのevent_idは1,2,3 ...となり、両方のユーザーのevent_idも同じになります。これによりmysqlの一意のID

私は、彼らがしていたどのくらいの時間を取得するためにevent_inのことからevent_outに各ユーザーのタイムスタンプを引くことができるようになります。

私は信じている私は、ユーザーごとに個別の番号を生成しない場合には、ユーザーAがサインイン(の場合はevent_inテーブルに1が生成されます)が、まだサインアウトしていない場合は、ユーザーBがサインインして(サインインすると2になります)、ユーザーAの前にサインアウトし、アウトのために1を得、ユーザAはアウトのために2を得る。だから、現在のユーザーと私の現在のクエリで私はタイムスタンプを計算することができなくなります。あなたは、私はそれは、単純な私に知らせて作ることができる方法上の任意のsuggetionを持っている場合は

SQL = "SELECT CONCAT(u.lastname, ', ', u.firstname) AS Name, g.group_name AS Class, " _ 
     & "DATE_FORMAT(i.timestamp_in,'%b %d %Y - %r') AS TimeIn, DATE_FORMAT   (o.timestamp_out,'%b %d %Y - %r') AS TimeOut " _  
     & "FROM event_in i, event_out o, user u, groups g " _ 
     & "WHERE(i.user_bannerid = u.user_bannerid) " _  
     & "AND o.user_bannerid = u.user_bannerid " _ 
     & "AND i.user_bannerid = o.user_bannerid " _ 
     & "AND i.event_id = o.event_id " _ 
     & "AND o.event_id = i.event_id " _ 
     & "AND i.group_id = o.group_id " _ 
     & "AND i.group_id = g.group_id " _ 
     & "AND o.group_id = g.group_id " 

、私はちょうど彼らがサインインしましたどのくらいの時間を計算することができるようにしたい。

をまたVBのコードがあることでしょうですユーザーがログインするのを防ぐには...ログインする場合は、再度サインインする前にサインアウトする必要があります。

答えて

0

ユーザーをイベントにマップする必要があるような状況ではありませんか。

私はこの

tblEventsなどのイベントや、ユーザー何かのためにテーブルを示唆している。その後、ユーザーのためのテーブルが

ようになる

  • tblUsers_UserId INT
  • のEventId INT

tblUsers

  • ユーザーIDのINT PK AI
  • UserDesc VARCHAR()

は、その後、あなたは実際にイベントにユーザーをマップすると、すべてのユーザーのためのイベントを割り当てることができます。

+0

私のコンピュータ科学者と天才はどこですか?誰も私を助けたいですか? :/ – user1012135

関連する問題