次のテーブル構造を持つ2つのテーブルがあります-
ユーザー( UserID int 、Name varchar(50)、DateCreated datetime) および
UserLogin ( Id int、UserId int、DateLoggedIn datetime)
アプリケーションに毎日/毎月/毎年ログインしているユーザーのレポートを次の形式で作成する必要があります -
日付、NewUsers、OldUsers、TotalUsers
日付- レポート用に選択された日付
NewUser - ユーザーがアプリケーションに初めてログインした場合、そのユーザーは新規として扱われ、それ以外の場合は古いユーザーとして扱われます。
OldUser - 最初の訪問後のその後のユーザー ログイン。
たとえば、ユーザー A が 1 か月間 15 日にログインした場合、15 日には新しいユーザーとして扱われますが、その後の Web サイトへのアクセスでは古いユーザーとして扱われ、レポートで古いユーザーとして報告する必要があります。同様に、ユーザー B が 2012 年 4 月 30 日に 1 回ログインした場合、それ以降は古いユーザーとして扱われます。
レポートを出力するためのクエリを教えてください。
私のデータは次のとおりです-
ユーザー表
| | ユーザー ID | 名前 | 作成日 | |--------|------|-------------| | | 1 | ラジビア | 2012-01-01 | | | 2 | マノジ・ティアギ | 2011-08-10 | | | 3 | ラグー・パンディ | 2009-05-13 | | | 4 | バジャン・ラル | 2012-05-01 | | | 5 | サトビル・シン | 2011-08-03 |
USERLOGIN テーブル
| | ID | ユーザー ID | ログイン日 | |----|--------|--------------| | | 1 | 1 | 2012-04-27 | | | 2 | 1 | 2012-05-25 | | | 3 | 1 | 2012-05-28 | | | 4 | 2 | 2012-03-21 | | | 5 | 2 | 2012-05-30 | | | 6 | 3 | 2012-05-20 | | | 7 | 4 | 2012-05-29 | | | 8 | 5 | 2012-04-22 | | | 9 | 3 | 2012-05-15 |
1か月分のデータ全体が必要です(個別は必要ありません)...理想的には、提供したデータに基づいて、次を取得する必要があります
| | 月 | 月 | 新規ユーザー | 旧ユーザー | 合計ユーザー | |-------|----------|----------|------------| | | 3 | 1 | 0 | 1 | | | 4 | 2 | 0 | 2 | | | 5 | 2 | 4 | 6 |
ユーザー ID 3 は 5 月に 2 回ログインしたため、最初の訪問を新規、2 回目の訪問を古いものとして扱う必要があります。
ティア、
パリトッシュ・アリア。