Sql server 2008 如何使用selectdatepart
我有这样一个SQL查询Sql server 2008 如何使用selectdatepart,sql-server-2008,datetime,Sql Server 2008,Datetime,我有这样一个SQL查询 SELECT TOP 1 ROW_NUMBER() OVER (ORDER BY column_date DESC) AS ROWID, * FROM table_report WHERE column_date = datepart(year,date) 如果我错了,请改正。我想从datetime开始计算年份,然后按年份选择前1行编号您可以通过向窗口功能添加分区来选择每年的第一行(按照您提供的顺序),然后仅对每年的第一行进行筛选: S
SELECT TOP 1
ROW_NUMBER() OVER (ORDER BY column_date DESC) AS ROWID, *
FROM
table_report
WHERE
column_date = datepart(year,date)
如果我错了,请改正。我想从datetime开始计算年份,然后按年份选择前1行编号您可以通过向窗口功能添加分区来选择每年的第一行(按照您提供的顺序),然后仅对每年的第一行进行筛选:
SELECT * FROM
(
SELECT ROW_NUMBER() OVER
(PARTITION BY datepart(year,date) ORDER BY column_date DESC) AS ROWID,
*
FROM table_report
) X
WHERE ROWID = 1;
前1行编号()超过(按日期部分(年,列日期)描述的订单)作为行ID。。。。。。。其中datepart(year,column_date)=datepart(year,date)未正确运行。当我尝试时,在“datepart”附近显示错误消息不正确的语法非常感谢。我能解决我的问题