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
月份列是当月登录此计算机的最受欢迎的用户。
我想显示最近登录的用户,但他们可能本月甚至上个月都没有登录。
在上面的例子中,如果今天是六月,我会选择 PC1 Kevin。
所以真的,我想要一个函数返回一个相对于当前月份的指定月份的数字 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)) 来查找每台计算机的最新名称。
正确的?