IF object_id('tempdb..#A') IS NOT NULL DROP TABLE #A
CREATE TABLE #A (Computer varchar(20), Name varchar(20), Month varchar(20))
INSERT INTO #A
SELECT 'PC1', 'Bob', 'June'
UNION ALL
SELECT 'PC1', 'Tammy', 'January'
UNION ALL
SELECT 'PC1', 'Wes', 'September'
UNION ALL
SELECT 'PC1', 'Susan', 'October'
UNION ALL
SELECT 'PC1', 'Kevin', 'February'
SELECT * FROM #A
これにより、次の結果が生成されます。
Computer Name Month
PC1 Bob June
PC1 Tammy January
PC1 Wes September
PC1 Susan October
PC1 Kevin February
月の列は、その月にこのコンピューターにログインした最も人気のあるユーザーです。
最近ログインしたユーザーを表示したいのですが、今月または先月もログインしていない可能性があります。
上記の例では、今日が 6 月の場合、PC1 のケビンを選択します。
本当に、関数が現在の月に対して指定された月の1〜12の数値を返すようにしたいと思います。
今日が6月26日なら
udf_month('June') would return 12
udf_month('May') would return 11
udf_month('January') would return 7
udf_month('December') would return 6
udf_month('July') would return 1
今日が 7 月 1 日の場合、udf_month('June') は 11 を返します。
次に、SELECT Computer, Name, Max(udf_Month(Month)) を実行して、各コンピューターの最新の名前を見つけることができます。
正しい?