-2

各従業員には、訪問日を最大 3 回まで記録する機会が与えられます。

従業員の最新の訪問日を特定し、それに 3 年を追加するにはどうすればよいですか?

私は次のことを試しました:

select top 1 dateOfVisit from table 
  where empid=123 
  Order by dateOfVisit DESC

これは、最新の訪問日を教えてくれません。

それから私はそれに3年を追加する必要があります。

4

1 に答える 1

2

これは、以下の3 つのクエリすべてを示すSQL Fiddleです。何かを議論する必要がある場合は、それを見て編集してください。

DATEADD()を使用して 3 年を追加できます。

  select top (1) DATEADD(year, 3, dateOfVisit) [DateOfVisitPlus3Years]
    from [table]
   where empid=123
order by dateOfVisit DESC;

単数形の「employee」をタイトルで使用し、テキストで何度も使用しており、1 人の従業員に対するクエリを提供しています。ただし、複数の従業員で実際にこれが必要になる可能性がわずかにある場合は、MAX() を使用してください。

  select empid, DATEADD(year, 3, max(dateOfVisit)) [DateOfVisitPlus3Years]
    from [table]
group by empid;

以下のクエリは、従業員ごとに、現在の日付 (つまり、「今日」)から最後の (最新の) dateOfVisit までの経過日数を示します。

  select empid,
         DATEDIFF(day, max(dateOfVisit), CURRENT_TIMESTAMP) [DaysSinceLastVisit]
    from [table]
group by empid;
于 2013-04-23T03:10:11.207 に答える